F203 VER 3.elf: file format elf32-littlearm Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001f8 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 00012158 080001f8 080001f8 000101f8 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .rodata 00018100 08012350 08012350 00022350 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .ARM 00000008 0802a450 0802a450 0003a450 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .init_array 00000004 0802a458 0802a458 0003a458 2**2 CONTENTS, ALLOC, LOAD, DATA 5 .fini_array 00000004 0802a45c 0802a45c 0003a45c 2**2 CONTENTS, ALLOC, LOAD, DATA 6 .data 00000228 20020000 0802a460 00040000 2**2 CONTENTS, ALLOC, LOAD, DATA 7 .dtcmram 00000000 20000000 20000000 00040228 2**0 CONTENTS 8 .sram2 00000000 2007c000 2007c000 00040228 2**0 CONTENTS 9 .bss 0004bd08 20020228 20020228 00040228 2**2 ALLOC 10 ._user_heap_stack 00000600 2006bf30 2006bf30 00040228 2**0 ALLOC 11 .ARM.attributes 0000002e 00000000 00000000 00040228 2**0 CONTENTS, READONLY 12 .debug_info 0002f20e 00000000 00000000 00040256 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_abbrev 000040c7 00000000 00000000 0006f464 2**0 CONTENTS, READONLY, DEBUGGING 14 .debug_aranges 000014f8 00000000 00000000 00073530 2**3 CONTENTS, READONLY, DEBUGGING 15 .debug_ranges 00001348 00000000 00000000 00074a28 2**3 CONTENTS, READONLY, DEBUGGING 16 .debug_line 0000dc91 00000000 00000000 00075d70 2**0 CONTENTS, READONLY, DEBUGGING 17 .debug_str 00008c17 00000000 00000000 00083a01 2**0 CONTENTS, READONLY, DEBUGGING 18 .comment 0000007c 00000000 00000000 0008c618 2**0 CONTENTS, READONLY 19 .debug_frame 0000572c 00000000 00000000 0008c694 2**2 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 080001f8 <__do_global_dtors_aux>: 80001f8: b510 push {r4, lr} 80001fa: 4c05 ldr r4, [pc, #20] ; (8000210 <_isr_vector_flash_end+0x18>) 80001fc: 7823 ldrb r3, [r4, #0] 80001fe: b933 cbnz r3, 800020e <__do_global_dtors_aux+0x16> 8000200: 4b04 ldr r3, [pc, #16] ; (8000214 <_isr_vector_flash_end+0x1c>) 8000202: b113 cbz r3, 800020a <__do_global_dtors_aux+0x12> 8000204: 4804 ldr r0, [pc, #16] ; (8000218 <_isr_vector_flash_end+0x20>) 8000206: f3af 8000 nop.w 800020a: 2301 movs r3, #1 800020c: 7023 strb r3, [r4, #0] 800020e: bd10 pop {r4, pc} 8000210: 20020228 .word 0x20020228 8000214: 00000000 .word 0x00000000 8000218: 08012338 .word 0x08012338 0800021c : 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: 2002022c .word 0x2002022c 8000234: 08012338 .word 0x08012338 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: 4b11 ldr r3, [pc, #68] ; (80005a4 ) 800055e: 2200 movs r2, #0 8000560: 701a strb r2, [r3, #0] BSP_LCD_DisplayOff(); 8000562: f003 fe57 bl 8004214 HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT_OFF 8000566: 2201 movs r2, #1 8000568: f44f 7180 mov.w r1, #256 ; 0x100 800056c: 480e ldr r0, [pc, #56] ; (80005a8 ) 800056e: f00e fa8b bl 800ea88 while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET); 8000572: bf00 nop 8000574: 2101 movs r1, #1 8000576: 480c ldr r0, [pc, #48] ; (80005a8 ) 8000578: f00e fa6e bl 800ea58 800057c: 4603 mov r3, r0 800057e: 2b01 cmp r3, #1 8000580: d0f8 beq.n 8000574 HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_RESET); 8000582: 2200 movs r2, #0 8000584: f44f 7180 mov.w r1, #256 ; 0x100 8000588: 4808 ldr r0, [pc, #32] ; (80005ac ) 800058a: f00e fa7d bl 800ea88 HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_RESET); 800058e: 2200 movs r2, #0 8000590: 2120 movs r1, #32 8000592: 4806 ldr r0, [pc, #24] ; (80005ac ) 8000594: f00e fa78 bl 800ea88 HAL_Delay(300); 8000598: f44f 7096 mov.w r0, #300 ; 0x12c 800059c: f00d fa8e bl 800dabc while(1); 80005a0: e7fe b.n 80005a0 80005a2: bf00 nop 80005a4: 20020244 .word 0x20020244 80005a8: 40020000 .word 0x40020000 80005ac: 40021400 .word 0x40021400 080005b0 : DMA2D_HandleTypeDef hdma2d; /* DMA2D init function */ void MX_DMA2D_Init(void) { 80005b0: b580 push {r7, lr} 80005b2: af00 add r7, sp, #0 hdma2d.Instance = DMA2D; 80005b4: 4b18 ldr r3, [pc, #96] ; (8000618 ) 80005b6: 4a19 ldr r2, [pc, #100] ; (800061c ) 80005b8: 601a str r2, [r3, #0] hdma2d.Init.Mode = DMA2D_M2M; 80005ba: 4b17 ldr r3, [pc, #92] ; (8000618 ) 80005bc: 2200 movs r2, #0 80005be: 605a str r2, [r3, #4] hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB565; 80005c0: 4b15 ldr r3, [pc, #84] ; (8000618 ) 80005c2: 2202 movs r2, #2 80005c4: 609a str r2, [r3, #8] hdma2d.Init.OutputOffset = 0; 80005c6: 4b14 ldr r3, [pc, #80] ; (8000618 ) 80005c8: 2200 movs r2, #0 80005ca: 60da str r2, [r3, #12] hdma2d.LayerCfg[1].InputOffset = 0; 80005cc: 4b12 ldr r3, [pc, #72] ; (8000618 ) 80005ce: 2200 movs r2, #0 80005d0: 639a str r2, [r3, #56] ; 0x38 hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_RGB565; 80005d2: 4b11 ldr r3, [pc, #68] ; (8000618 ) 80005d4: 2202 movs r2, #2 80005d6: 63da str r2, [r3, #60] ; 0x3c hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA; 80005d8: 4b0f ldr r3, [pc, #60] ; (8000618 ) 80005da: 2200 movs r2, #0 80005dc: 641a str r2, [r3, #64] ; 0x40 hdma2d.LayerCfg[1].InputAlpha = 0; 80005de: 4b0e ldr r3, [pc, #56] ; (8000618 ) 80005e0: 2200 movs r2, #0 80005e2: 645a str r2, [r3, #68] ; 0x44 hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA; 80005e4: 4b0c ldr r3, [pc, #48] ; (8000618 ) 80005e6: 2200 movs r2, #0 80005e8: 649a str r2, [r3, #72] ; 0x48 hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR; 80005ea: 4b0b ldr r3, [pc, #44] ; (8000618 ) 80005ec: 2200 movs r2, #0 80005ee: 64da str r2, [r3, #76] ; 0x4c if (HAL_DMA2D_Init(&hdma2d) != HAL_OK) 80005f0: 4809 ldr r0, [pc, #36] ; (8000618 ) 80005f2: f00d fde1 bl 800e1b8 80005f6: 4603 mov r3, r0 80005f8: 2b00 cmp r3, #0 80005fa: d001 beq.n 8000600 { Error_Handler(); 80005fc: f004 ffcc bl 8005598 } if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK) 8000600: 2101 movs r1, #1 8000602: 4805 ldr r0, [pc, #20] ; (8000618 ) 8000604: f00d ff46 bl 800e494 8000608: 4603 mov r3, r0 800060a: 2b00 cmp r3, #0 800060c: d001 beq.n 8000612 { Error_Handler(); 800060e: f004 ffc3 bl 8005598 } } 8000612: bf00 nop 8000614: bd80 pop {r7, pc} 8000616: bf00 nop 8000618: 2006b498 .word 0x2006b498 800061c: 4002b000 .word 0x4002b000 08000620 : void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* dma2dHandle) { 8000620: b480 push {r7} 8000622: b085 sub sp, #20 8000624: af00 add r7, sp, #0 8000626: 6078 str r0, [r7, #4] if(dma2dHandle->Instance==DMA2D) 8000628: 687b ldr r3, [r7, #4] 800062a: 681b ldr r3, [r3, #0] 800062c: 4a0a ldr r2, [pc, #40] ; (8000658 ) 800062e: 4293 cmp r3, r2 8000630: d10b bne.n 800064a { /* USER CODE BEGIN DMA2D_MspInit 0 */ /* USER CODE END DMA2D_MspInit 0 */ /* DMA2D clock enable */ __HAL_RCC_DMA2D_CLK_ENABLE(); 8000632: 4a0a ldr r2, [pc, #40] ; (800065c ) 8000634: 4b09 ldr r3, [pc, #36] ; (800065c ) 8000636: 6b1b ldr r3, [r3, #48] ; 0x30 8000638: f443 0300 orr.w r3, r3, #8388608 ; 0x800000 800063c: 6313 str r3, [r2, #48] ; 0x30 800063e: 4b07 ldr r3, [pc, #28] ; (800065c ) 8000640: 6b1b ldr r3, [r3, #48] ; 0x30 8000642: f403 0300 and.w r3, r3, #8388608 ; 0x800000 8000646: 60fb str r3, [r7, #12] 8000648: 68fb ldr r3, [r7, #12] /* USER CODE BEGIN DMA2D_MspInit 1 */ /* USER CODE END DMA2D_MspInit 1 */ } } 800064a: bf00 nop 800064c: 3714 adds r7, #20 800064e: 46bd mov sp, r7 8000650: f85d 7b04 ldr.w r7, [sp], #4 8000654: 4770 bx lr 8000656: bf00 nop 8000658: 4002b000 .word 0x4002b000 800065c: 40023800 .word 0x40023800 08000660 : * EXTI * Free pins are configured automatically as Analog (this feature is enabled through * the Code Generation settings) */ void MX_GPIO_Init(void) { 8000660: b580 push {r7, lr} 8000662: b08e sub sp, #56 ; 0x38 8000664: af00 add r7, sp, #0 GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); 8000666: 4a73 ldr r2, [pc, #460] ; (8000834 ) 8000668: 4b72 ldr r3, [pc, #456] ; (8000834 ) 800066a: 6b1b ldr r3, [r3, #48] ; 0x30 800066c: f043 0310 orr.w r3, r3, #16 8000670: 6313 str r3, [r2, #48] ; 0x30 8000672: 4b70 ldr r3, [pc, #448] ; (8000834 ) 8000674: 6b1b ldr r3, [r3, #48] ; 0x30 8000676: f003 0310 and.w r3, r3, #16 800067a: 623b str r3, [r7, #32] 800067c: 6a3b ldr r3, [r7, #32] __HAL_RCC_GPIOC_CLK_ENABLE(); 800067e: 4a6d ldr r2, [pc, #436] ; (8000834 ) 8000680: 4b6c ldr r3, [pc, #432] ; (8000834 ) 8000682: 6b1b ldr r3, [r3, #48] ; 0x30 8000684: f043 0304 orr.w r3, r3, #4 8000688: 6313 str r3, [r2, #48] ; 0x30 800068a: 4b6a ldr r3, [pc, #424] ; (8000834 ) 800068c: 6b1b ldr r3, [r3, #48] ; 0x30 800068e: f003 0304 and.w r3, r3, #4 8000692: 61fb str r3, [r7, #28] 8000694: 69fb ldr r3, [r7, #28] __HAL_RCC_GPIOF_CLK_ENABLE(); 8000696: 4a67 ldr r2, [pc, #412] ; (8000834 ) 8000698: 4b66 ldr r3, [pc, #408] ; (8000834 ) 800069a: 6b1b ldr r3, [r3, #48] ; 0x30 800069c: f043 0320 orr.w r3, r3, #32 80006a0: 6313 str r3, [r2, #48] ; 0x30 80006a2: 4b64 ldr r3, [pc, #400] ; (8000834 ) 80006a4: 6b1b ldr r3, [r3, #48] ; 0x30 80006a6: f003 0320 and.w r3, r3, #32 80006aa: 61bb str r3, [r7, #24] 80006ac: 69bb ldr r3, [r7, #24] __HAL_RCC_GPIOH_CLK_ENABLE(); 80006ae: 4a61 ldr r2, [pc, #388] ; (8000834 ) 80006b0: 4b60 ldr r3, [pc, #384] ; (8000834 ) 80006b2: 6b1b ldr r3, [r3, #48] ; 0x30 80006b4: f043 0380 orr.w r3, r3, #128 ; 0x80 80006b8: 6313 str r3, [r2, #48] ; 0x30 80006ba: 4b5e ldr r3, [pc, #376] ; (8000834 ) 80006bc: 6b1b ldr r3, [r3, #48] ; 0x30 80006be: f003 0380 and.w r3, r3, #128 ; 0x80 80006c2: 617b str r3, [r7, #20] 80006c4: 697b ldr r3, [r7, #20] __HAL_RCC_GPIOA_CLK_ENABLE(); 80006c6: 4a5b ldr r2, [pc, #364] ; (8000834 ) 80006c8: 4b5a ldr r3, [pc, #360] ; (8000834 ) 80006ca: 6b1b ldr r3, [r3, #48] ; 0x30 80006cc: f043 0301 orr.w r3, r3, #1 80006d0: 6313 str r3, [r2, #48] ; 0x30 80006d2: 4b58 ldr r3, [pc, #352] ; (8000834 ) 80006d4: 6b1b ldr r3, [r3, #48] ; 0x30 80006d6: f003 0301 and.w r3, r3, #1 80006da: 613b str r3, [r7, #16] 80006dc: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOB_CLK_ENABLE(); 80006de: 4a55 ldr r2, [pc, #340] ; (8000834 ) 80006e0: 4b54 ldr r3, [pc, #336] ; (8000834 ) 80006e2: 6b1b ldr r3, [r3, #48] ; 0x30 80006e4: f043 0302 orr.w r3, r3, #2 80006e8: 6313 str r3, [r2, #48] ; 0x30 80006ea: 4b52 ldr r3, [pc, #328] ; (8000834 ) 80006ec: 6b1b ldr r3, [r3, #48] ; 0x30 80006ee: f003 0302 and.w r3, r3, #2 80006f2: 60fb str r3, [r7, #12] 80006f4: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOG_CLK_ENABLE(); 80006f6: 4a4f ldr r2, [pc, #316] ; (8000834 ) 80006f8: 4b4e ldr r3, [pc, #312] ; (8000834 ) 80006fa: 6b1b ldr r3, [r3, #48] ; 0x30 80006fc: f043 0340 orr.w r3, r3, #64 ; 0x40 8000700: 6313 str r3, [r2, #48] ; 0x30 8000702: 4b4c ldr r3, [pc, #304] ; (8000834 ) 8000704: 6b1b ldr r3, [r3, #48] ; 0x30 8000706: f003 0340 and.w r3, r3, #64 ; 0x40 800070a: 60bb str r3, [r7, #8] 800070c: 68bb ldr r3, [r7, #8] __HAL_RCC_GPIOD_CLK_ENABLE(); 800070e: 4a49 ldr r2, [pc, #292] ; (8000834 ) 8000710: 4b48 ldr r3, [pc, #288] ; (8000834 ) 8000712: 6b1b ldr r3, [r3, #48] ; 0x30 8000714: f043 0308 orr.w r3, r3, #8 8000718: 6313 str r3, [r2, #48] ; 0x30 800071a: 4b46 ldr r3, [pc, #280] ; (8000834 ) 800071c: 6b1b ldr r3, [r3, #48] ; 0x30 800071e: f003 0308 and.w r3, r3, #8 8000722: 607b str r3, [r7, #4] 8000724: 687b ldr r3, [r7, #4] HAL_GPIO_WritePin(GPIOE, (U1_Pin | U2_Pin | U3_Pin), GPIO_PIN_SET); 8000726: 2201 movs r2, #1 8000728: 2138 movs r1, #56 ; 0x38 800072a: 4843 ldr r0, [pc, #268] ; (8000838 ) 800072c: f00e f9ac bl 800ea88 HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_SET); 8000730: 2201 movs r2, #1 8000732: f44f 7180 mov.w r1, #256 ; 0x100 8000736: 4841 ldr r0, [pc, #260] ; (800083c ) 8000738: f00e f9a6 bl 800ea88 HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); 800073c: 2201 movs r2, #1 800073e: 2140 movs r1, #64 ; 0x40 8000740: 483f ldr r0, [pc, #252] ; (8000840 ) 8000742: f00e f9a1 bl 800ea88 HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); 8000746: 2201 movs r2, #1 8000748: f44f 7180 mov.w r1, #256 ; 0x100 800074c: 483d ldr r0, [pc, #244] ; (8000844 ) 800074e: f00e f99b bl 800ea88 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 8000752: 2200 movs r2, #0 8000754: f44f 7100 mov.w r1, #512 ; 0x200 8000758: 4838 ldr r0, [pc, #224] ; (800083c ) 800075a: f00e f995 bl 800ea88 /*Configure GPIO pins : PEPin PEPin PEPin */ GPIO_InitStruct.Pin = U1_Pin|U2_Pin|U3_Pin; 800075e: 2338 movs r3, #56 ; 0x38 8000760: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 8000762: 2301 movs r3, #1 8000764: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; 8000766: 2301 movs r3, #1 8000768: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 800076a: 2303 movs r3, #3 800076c: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); 800076e: f107 0324 add.w r3, r7, #36 ; 0x24 8000772: 4619 mov r1, r3 8000774: 4830 ldr r0, [pc, #192] ; (8000838 ) 8000776: f00d ffc5 bl 800e704 /*Configure GPIO pins : PAPin PAPin */ GPIO_InitStruct.Pin = K1_Pin; 800077a: f44f 7300 mov.w r3, #512 ; 0x200 800077e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 8000780: 2300 movs r3, #0 8000782: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; 8000784: 2301 movs r3, #1 8000786: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 8000788: 2302 movs r3, #2 800078a: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 800078c: f107 0324 add.w r3, r7, #36 ; 0x24 8000790: 4619 mov r1, r3 8000792: 482c ldr r0, [pc, #176] ; (8000844 ) 8000794: f00d ffb6 bl 800e704 /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = ON_Pin | ON1_Pin | RE_Pin; 8000798: f44f 7348 mov.w r3, #800 ; 0x320 800079c: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 800079e: 2301 movs r3, #1 80007a0: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 80007a2: 2300 movs r3, #0 80007a4: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 80007a6: 2302 movs r3, #2 80007a8: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 80007aa: f107 0324 add.w r3, r7, #36 ; 0x24 80007ae: 4619 mov r1, r3 80007b0: 4822 ldr r0, [pc, #136] ; (800083c ) 80007b2: f00d ffa7 bl 800e704 GPIO_InitStruct.Pin = DISP_ON_Pin; 80007b6: f44f 7380 mov.w r3, #256 ; 0x100 80007ba: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 80007bc: 2301 movs r3, #1 80007be: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 80007c0: 2300 movs r3, #0 80007c2: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 80007c4: 2302 movs r3, #2 80007c6: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(DISP_ON_GPIO_Port, &GPIO_InitStruct); 80007c8: f107 0324 add.w r3, r7, #36 ; 0x24 80007cc: 4619 mov r1, r3 80007ce: 481d ldr r0, [pc, #116] ; (8000844 ) 80007d0: f00d ff98 bl 800e704 /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = OFF_Pin; 80007d4: 2301 movs r3, #1 80007d6: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 80007d8: 2300 movs r3, #0 80007da: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 80007dc: 2300 movs r3, #0 80007de: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(OFF_GPIO_Port, &GPIO_InitStruct); 80007e0: f107 0324 add.w r3, r7, #36 ; 0x24 80007e4: 4619 mov r1, r3 80007e6: 4817 ldr r0, [pc, #92] ; (8000844 ) 80007e8: f00d ff8c bl 800e704 /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = RESET_Pin; 80007ec: 2340 movs r3, #64 ; 0x40 80007ee: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 80007f0: 2301 movs r3, #1 80007f2: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; 80007f4: 2300 movs r3, #0 80007f6: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 80007f8: 2302 movs r3, #2 80007fa: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(RESET_GPIO_Port, &GPIO_InitStruct); 80007fc: f107 0324 add.w r3, r7, #36 ; 0x24 8000800: 4619 mov r1, r3 8000802: 480f ldr r0, [pc, #60] ; (8000840 ) 8000804: f00d ff7e bl 800e704 GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(RE_GPIO_Port, &GPIO_InitStruct);*/ HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_SET); 8000808: 2201 movs r2, #1 800080a: f44f 7180 mov.w r1, #256 ; 0x100 800080e: 480b ldr r0, [pc, #44] ; (800083c ) 8000810: f00e f93a bl 800ea88 HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_SET); 8000814: 2201 movs r2, #1 8000816: 2120 movs r1, #32 8000818: 4808 ldr r0, [pc, #32] ; (800083c ) 800081a: f00e f935 bl 800ea88 HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF 800081e: 2201 movs r2, #1 8000820: f44f 7180 mov.w r1, #256 ; 0x100 8000824: 4807 ldr r0, [pc, #28] ; (8000844 ) 8000826: f00e f92f bl 800ea88 } 800082a: bf00 nop 800082c: 3738 adds r7, #56 ; 0x38 800082e: 46bd mov sp, r7 8000830: bd80 pop {r7, pc} 8000832: bf00 nop 8000834: 40023800 .word 0x40023800 8000838: 40021000 .word 0x40021000 800083c: 40021400 .word 0x40021400 8000840: 40020c00 .word 0x40020c00 8000844: 40020000 .word 0x40020000 08000848 : void initKeys(void) { 8000848: b580 push {r7, lr} 800084a: af00 add r7, sp, #0 KeysIsReady = false; 800084c: 4b09 ldr r3, [pc, #36] ; (8000874 ) 800084e: 2200 movs r2, #0 8000850: 701a strb r2, [r3, #0] HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET); 8000852: 2201 movs r2, #1 8000854: 2108 movs r1, #8 8000856: 4808 ldr r0, [pc, #32] ; (8000878 ) 8000858: f00e f916 bl 800ea88 HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET); 800085c: 2201 movs r2, #1 800085e: 2110 movs r1, #16 8000860: 4805 ldr r0, [pc, #20] ; (8000878 ) 8000862: f00e f911 bl 800ea88 HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET); 8000866: 2201 movs r2, #1 8000868: 2120 movs r1, #32 800086a: 4803 ldr r0, [pc, #12] ; (8000878 ) 800086c: f00e f90c bl 800ea88 } 8000870: bf00 nop 8000872: bd80 pop {r7, pc} 8000874: 20020248 .word 0x20020248 8000878: 40021000 .word 0x40021000 0800087c : uint32_t readkey(void) { 800087c: b580 push {r7, lr} 800087e: b082 sub sp, #8 8000880: af00 add r7, sp, #0 uint32_t key = 0; 8000882: 2300 movs r3, #0 8000884: 607b str r3, [r7, #4] if(KeysIsReady == false){ 8000886: 4b34 ldr r3, [pc, #208] ; (8000958 ) 8000888: 781b ldrb r3, [r3, #0] 800088a: b2db uxtb r3, r3 800088c: f083 0301 eor.w r3, r3, #1 8000890: b2db uxtb r3, r3 8000892: 2b00 cmp r3, #0 8000894: d001 beq.n 800089a return 0; 8000896: 2300 movs r3, #0 8000898: e05a b.n 8000950 } if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 800089a: 2101 movs r1, #1 800089c: 482f ldr r0, [pc, #188] ; (800095c ) 800089e: f00e f8db bl 800ea58 80008a2: 4603 mov r3, r0 80008a4: 2b01 cmp r3, #1 80008a6: d101 bne.n 80008ac key = KEY_PW; 80008a8: 2301 movs r3, #1 80008aa: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET); 80008ac: 2201 movs r2, #1 80008ae: 2108 movs r1, #8 80008b0: 482b ldr r0, [pc, #172] ; (8000960 ) 80008b2: f00e f8e9 bl 800ea88 HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET); 80008b6: 2201 movs r2, #1 80008b8: 2110 movs r1, #16 80008ba: 4829 ldr r0, [pc, #164] ; (8000960 ) 80008bc: f00e f8e4 bl 800ea88 HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET); 80008c0: 2201 movs r2, #1 80008c2: 2120 movs r1, #32 80008c4: 4826 ldr r0, [pc, #152] ; (8000960 ) 80008c6: f00e f8df bl 800ea88 HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_RESET); 80008ca: 2200 movs r2, #0 80008cc: 2108 movs r1, #8 80008ce: 4824 ldr r0, [pc, #144] ; (8000960 ) 80008d0: f00e f8da bl 800ea88 if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) { 80008d4: f44f 7100 mov.w r1, #512 ; 0x200 80008d8: 4820 ldr r0, [pc, #128] ; (800095c ) 80008da: f00e f8bd bl 800ea58 80008de: 4603 mov r3, r0 80008e0: 2b00 cmp r3, #0 80008e2: d103 bne.n 80008ec key |= KEY_DN; 80008e4: 687b ldr r3, [r7, #4] 80008e6: f043 0304 orr.w r3, r3, #4 80008ea: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET); 80008ec: 2201 movs r2, #1 80008ee: 2108 movs r1, #8 80008f0: 481b ldr r0, [pc, #108] ; (8000960 ) 80008f2: f00e f8c9 bl 800ea88 HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_RESET); 80008f6: 2200 movs r2, #0 80008f8: 2110 movs r1, #16 80008fa: 4819 ldr r0, [pc, #100] ; (8000960 ) 80008fc: f00e f8c4 bl 800ea88 if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) { 8000900: f44f 7100 mov.w r1, #512 ; 0x200 8000904: 4815 ldr r0, [pc, #84] ; (800095c ) 8000906: f00e f8a7 bl 800ea58 800090a: 4603 mov r3, r0 800090c: 2b00 cmp r3, #0 800090e: d103 bne.n 8000918 key |= KEY_OK; 8000910: 687b ldr r3, [r7, #4] 8000912: f043 0320 orr.w r3, r3, #32 8000916: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET); 8000918: 2201 movs r2, #1 800091a: 2110 movs r1, #16 800091c: 4810 ldr r0, [pc, #64] ; (8000960 ) 800091e: f00e f8b3 bl 800ea88 HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_RESET); 8000922: 2200 movs r2, #0 8000924: 2120 movs r1, #32 8000926: 480e ldr r0, [pc, #56] ; (8000960 ) 8000928: f00e f8ae bl 800ea88 if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) { 800092c: f44f 7100 mov.w r1, #512 ; 0x200 8000930: 480a ldr r0, [pc, #40] ; (800095c ) 8000932: f00e f891 bl 800ea58 8000936: 4603 mov r3, r0 8000938: 2b00 cmp r3, #0 800093a: d103 bne.n 8000944 key |= KEY_UP; 800093c: 687b ldr r3, [r7, #4] 800093e: f043 0302 orr.w r3, r3, #2 8000942: 607b str r3, [r7, #4] } HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET); 8000944: 2201 movs r2, #1 8000946: 2120 movs r1, #32 8000948: 4805 ldr r0, [pc, #20] ; (8000960 ) 800094a: f00e f89d bl 800ea88 return key; 800094e: 687b ldr r3, [r7, #4] } 8000950: 4618 mov r0, r3 8000952: 3708 adds r7, #8 8000954: 46bd mov sp, r7 8000956: bd80 pop {r7, pc} 8000958: 20020248 .word 0x20020248 800095c: 40020000 .word 0x40020000 8000960: 40021000 .word 0x40021000 08000964 : uint32_t kbhit(void) { 8000964: b580 push {r7, lr} 8000966: b082 sub sp, #8 8000968: af00 add r7, sp, #0 volatile uint32_t key = 0;; 800096a: 2300 movs r3, #0 800096c: 607b str r3, [r7, #4] static uint16_t rep = 50; do { key = readkey(); 800096e: f7ff ff85 bl 800087c 8000972: 4603 mov r3, r0 8000974: 607b str r3, [r7, #4] if(!key) 8000976: 687b ldr r3, [r7, #4] 8000978: 2b00 cmp r3, #0 800097a: d10d bne.n 8000998 { if(dreb) dreb--; 800097c: 4b43 ldr r3, [pc, #268] ; (8000a8c ) 800097e: 681b ldr r3, [r3, #0] 8000980: 2b00 cmp r3, #0 8000982: d005 beq.n 8000990 8000984: 4b41 ldr r3, [pc, #260] ; (8000a8c ) 8000986: 681b ldr r3, [r3, #0] 8000988: 3b01 subs r3, #1 800098a: 4a40 ldr r2, [pc, #256] ; (8000a8c ) 800098c: 6013 str r3, [r2, #0] 800098e: e00c b.n 80009aa else first = 1; 8000990: 4b3f ldr r3, [pc, #252] ; (8000a90 ) 8000992: 2201 movs r2, #1 8000994: 701a strb r2, [r3, #0] 8000996: e008 b.n 80009aa } else { if(dreb < KEY_DBZ) 8000998: 4b3c ldr r3, [pc, #240] ; (8000a8c ) 800099a: 681b ldr r3, [r3, #0] 800099c: 2b01 cmp r3, #1 800099e: d804 bhi.n 80009aa dreb++; 80009a0: 4b3a ldr r3, [pc, #232] ; (8000a8c ) 80009a2: 681b ldr r3, [r3, #0] 80009a4: 3301 adds r3, #1 80009a6: 4a39 ldr r2, [pc, #228] ; (8000a8c ) 80009a8: 6013 str r3, [r2, #0] } } while((dreb > 0) && (dreb < KEY_DBZ)); 80009aa: 4b38 ldr r3, [pc, #224] ; (8000a8c ) 80009ac: 681b ldr r3, [r3, #0] 80009ae: 2b00 cmp r3, #0 80009b0: d003 beq.n 80009ba 80009b2: 4b36 ldr r3, [pc, #216] ; (8000a8c ) 80009b4: 681b ldr r3, [r3, #0] 80009b6: 2b01 cmp r3, #1 80009b8: d9d9 bls.n 800096e if(key == KEY_PW) 80009ba: 687b ldr r3, [r7, #4] 80009bc: 2b01 cmp r3, #1 80009be: d129 bne.n 8000a14 { do { key = readkey(); 80009c0: f7ff ff5c bl 800087c 80009c4: 4603 mov r3, r0 80009c6: 607b str r3, [r7, #4] if(!key) 80009c8: 687b ldr r3, [r7, #4] 80009ca: 2b00 cmp r3, #0 80009cc: d10d bne.n 80009ea { if(dreb) dreb--; 80009ce: 4b2f ldr r3, [pc, #188] ; (8000a8c ) 80009d0: 681b ldr r3, [r3, #0] 80009d2: 2b00 cmp r3, #0 80009d4: d005 beq.n 80009e2 80009d6: 4b2d ldr r3, [pc, #180] ; (8000a8c ) 80009d8: 681b ldr r3, [r3, #0] 80009da: 3b01 subs r3, #1 80009dc: 4a2b ldr r2, [pc, #172] ; (8000a8c ) 80009de: 6013 str r3, [r2, #0] 80009e0: e00e b.n 8000a00 else first = 1; 80009e2: 4b2b ldr r3, [pc, #172] ; (8000a90 ) 80009e4: 2201 movs r2, #1 80009e6: 701a strb r2, [r3, #0] 80009e8: e00a b.n 8000a00 } else { if(dreb < 50000) 80009ea: 4b28 ldr r3, [pc, #160] ; (8000a8c ) 80009ec: 681b ldr r3, [r3, #0] 80009ee: f24c 324f movw r2, #49999 ; 0xc34f 80009f2: 4293 cmp r3, r2 80009f4: d804 bhi.n 8000a00 dreb++; 80009f6: 4b25 ldr r3, [pc, #148] ; (8000a8c ) 80009f8: 681b ldr r3, [r3, #0] 80009fa: 3301 adds r3, #1 80009fc: 4a23 ldr r2, [pc, #140] ; (8000a8c ) 80009fe: 6013 str r3, [r2, #0] } } while((dreb > 0) && (dreb < 50000)); 8000a00: 4b22 ldr r3, [pc, #136] ; (8000a8c ) 8000a02: 681b ldr r3, [r3, #0] 8000a04: 2b00 cmp r3, #0 8000a06: d005 beq.n 8000a14 8000a08: 4b20 ldr r3, [pc, #128] ; (8000a8c ) 8000a0a: 681b ldr r3, [r3, #0] 8000a0c: f24c 324f movw r2, #49999 ; 0xc34f 8000a10: 4293 cmp r3, r2 8000a12: d9d5 bls.n 80009c0 if(!key) //если кнопки отпущены 8000a14: 687b ldr r3, [r7, #4] 8000a16: 2b00 cmp r3, #0 8000a18: d104 bne.n 8000a24 { first = 1; //достоверно кнопки отпущены 8000a1a: 4b1d ldr r3, [pc, #116] ; (8000a90 ) 8000a1c: 2201 movs r2, #1 8000a1e: 701a strb r2, [r3, #0] return 0; //вернуть 0 8000a20: 2300 movs r3, #0 8000a22: e02f b.n 8000a84 } else //иначе { if(first) //определить кнопку 8000a24: 4b1a ldr r3, [pc, #104] ; (8000a90 ) 8000a26: 781b ldrb r3, [r3, #0] 8000a28: 2b00 cmp r3, #0 8000a2a: d00c beq.n 8000a46 { //только один раз first = 0; //за нажатие 8000a2c: 4b18 ldr r3, [pc, #96] ; (8000a90 ) 8000a2e: 2200 movs r2, #0 8000a30: 701a strb r2, [r3, #0] repeat = rep = 2000; 8000a32: 4b18 ldr r3, [pc, #96] ; (8000a94 ) 8000a34: f44f 62fa mov.w r2, #2000 ; 0x7d0 8000a38: 801a strh r2, [r3, #0] 8000a3a: 4b16 ldr r3, [pc, #88] ; (8000a94 ) 8000a3c: 881a ldrh r2, [r3, #0] 8000a3e: 4b16 ldr r3, [pc, #88] ; (8000a98 ) 8000a40: 801a strh r2, [r3, #0] return key; //вернуть в главную функцию состояние клавиатуры 8000a42: 687b ldr r3, [r7, #4] 8000a44: e01e b.n 8000a84 } else { if(repeat) 8000a46: 4b14 ldr r3, [pc, #80] ; (8000a98 ) 8000a48: 881b ldrh r3, [r3, #0] 8000a4a: b29b uxth r3, r3 8000a4c: 2b00 cmp r3, #0 8000a4e: d001 beq.n 8000a54 return 0; //имитация свободной клавиатуры 8000a50: 2300 movs r3, #0 8000a52: e017 b.n 8000a84 else { if(rep > 0) 8000a54: 4b0f ldr r3, [pc, #60] ; (8000a94 ) 8000a56: 881b ldrh r3, [r3, #0] 8000a58: 2b00 cmp r3, #0 8000a5a: d006 beq.n 8000a6a rep >>= 1; 8000a5c: 4b0d ldr r3, [pc, #52] ; (8000a94 ) 8000a5e: 881b ldrh r3, [r3, #0] 8000a60: 085b lsrs r3, r3, #1 8000a62: b29a uxth r2, r3 8000a64: 4b0b ldr r3, [pc, #44] ; (8000a94 ) 8000a66: 801a strh r2, [r3, #0] 8000a68: e002 b.n 8000a70 else rep = 100; 8000a6a: 4b0a ldr r3, [pc, #40] ; (8000a94 ) 8000a6c: 2264 movs r2, #100 ; 0x64 8000a6e: 801a strh r2, [r3, #0] repeat = rep; 8000a70: 4b08 ldr r3, [pc, #32] ; (8000a94 ) 8000a72: 881a ldrh r2, [r3, #0] 8000a74: 4b08 ldr r3, [pc, #32] ; (8000a98 ) 8000a76: 801a strh r2, [r3, #0] if(key == KEY_PW) 8000a78: 687b ldr r3, [r7, #4] 8000a7a: 2b01 cmp r3, #1 8000a7c: d101 bne.n 8000a82 return 0; 8000a7e: 2300 movs r3, #0 8000a80: e000 b.n 8000a84 return key; 8000a82: 687b ldr r3, [r7, #4] } } } } 8000a84: 4618 mov r0, r3 8000a86: 3708 adds r7, #8 8000a88: 46bd mov sp, r7 8000a8a: bd80 pop {r7, pc} 8000a8c: 20020254 .word 0x20020254 8000a90: 20020011 .word 0x20020011 8000a94: 20020012 .word 0x20020012 8000a98: 20020246 .word 0x20020246 08000a9c : void keyIns(void) { 8000a9c: b580 push {r7, lr} 8000a9e: b09e sub sp, #120 ; 0x78 8000aa0: af00 add r7, sp, #0 volatile uint8_t idt, iet, ies, ied, iee, ikd, iks, ikt; uint16_t multA_u16, multB_u16, dX, dXold, MaxLevel; char string[40], str[40]; float32_t f, fl; uint32_t Year, Month, Day, Hour, Min, Sec; float32_t fa[3] = {0, 0, 0}; 8000aa2: f04f 0300 mov.w r3, #0 8000aa6: 613b str r3, [r7, #16] 8000aa8: f04f 0300 mov.w r3, #0 8000aac: 617b str r3, [r7, #20] 8000aae: f04f 0300 mov.w r3, #0 8000ab2: 61bb str r3, [r7, #24] float32_t ff[3] = {0, 0, 0}; 8000ab4: f04f 0300 mov.w r3, #0 8000ab8: 607b str r3, [r7, #4] 8000aba: f04f 0300 mov.w r3, #0 8000abe: 60bb str r3, [r7, #8] 8000ac0: f04f 0300 mov.w r3, #0 8000ac4: 60fb str r3, [r7, #12] float64_t f64; uint8_t tmp8; key = KEY_STATE; 8000ac6: 4bad ldr r3, [pc, #692] ; (8000d7c ) 8000ac8: 681b ldr r3, [r3, #0] 8000aca: 677b str r3, [r7, #116] ; 0x74 KEY_STATE = 0; 8000acc: 4bab ldr r3, [pc, #684] ; (8000d7c ) 8000ace: 2200 movs r2, #0 8000ad0: 601a str r2, [r3, #0] if(key) 8000ad2: 6f7b ldr r3, [r7, #116] ; 0x74 8000ad4: 2b00 cmp r3, #0 8000ad6: f000 8570 beq.w 80015ba { if(DrawStatus) 8000ada: 4ba9 ldr r3, [pc, #676] ; (8000d80 ) 8000adc: 781b ldrb r3, [r3, #0] 8000ade: b2db uxtb r3, r3 8000ae0: 2b00 cmp r3, #0 8000ae2: d00a beq.n 8000afa { DrawStatus = false; 8000ae4: 4ba6 ldr r3, [pc, #664] ; (8000d80 ) 8000ae6: 2200 movs r2, #0 8000ae8: 701a strb r2, [r3, #0] timerStatus = 0; 8000aea: 4ba6 ldr r3, [pc, #664] ; (8000d84 ) 8000aec: 2200 movs r2, #0 8000aee: 801a strh r2, [r3, #0] STATUS = AP_OK; 8000af0: 4ba5 ldr r3, [pc, #660] ; (8000d88 ) 8000af2: 2200 movs r2, #0 8000af4: 601a str r2, [r3, #0] 8000af6: f000 bd60 b.w 80015ba return; } switch(key) 8000afa: 6f7b ldr r3, [r7, #116] ; 0x74 8000afc: 3b01 subs r3, #1 8000afe: 2b1f cmp r3, #31 8000b00: f200 855b bhi.w 80015ba 8000b04: a201 add r2, pc, #4 ; (adr r2, 8000b0c ) 8000b06: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8000b0a: bf00 nop 8000b0c: 0800158f .word 0x0800158f 8000b10: 08000b8d .word 0x08000b8d 8000b14: 080015bb .word 0x080015bb 8000b18: 0800103d .word 0x0800103d 8000b1c: 080015bb .word 0x080015bb 8000b20: 080015bb .word 0x080015bb 8000b24: 080015bb .word 0x080015bb 8000b28: 080015bb .word 0x080015bb 8000b2c: 080015bb .word 0x080015bb 8000b30: 080015bb .word 0x080015bb 8000b34: 080015bb .word 0x080015bb 8000b38: 080015bb .word 0x080015bb 8000b3c: 080015bb .word 0x080015bb 8000b40: 080015bb .word 0x080015bb 8000b44: 080015bb .word 0x080015bb 8000b48: 080015bb .word 0x080015bb 8000b4c: 080015bb .word 0x080015bb 8000b50: 080015bb .word 0x080015bb 8000b54: 080015bb .word 0x080015bb 8000b58: 080015bb .word 0x080015bb 8000b5c: 080015bb .word 0x080015bb 8000b60: 080015bb .word 0x080015bb 8000b64: 080015bb .word 0x080015bb 8000b68: 080015bb .word 0x080015bb 8000b6c: 080015bb .word 0x080015bb 8000b70: 080015bb .word 0x080015bb 8000b74: 080015bb .word 0x080015bb 8000b78: 080015bb .word 0x080015bb 8000b7c: 080015bb .word 0x080015bb 8000b80: 080015bb .word 0x080015bb 8000b84: 080015bb .word 0x080015bb 8000b88: 08001343 .word 0x08001343 { case KEY_UP://TODO KEY UP if(menu == MAIN) 8000b8c: 4b7f ldr r3, [pc, #508] ; (8000d8c ) 8000b8e: 781b ldrb r3, [r3, #0] 8000b90: b2db uxtb r3, r3 8000b92: 2b00 cmp r3, #0 8000b94: f040 81ef bne.w 8000f76 { if(CNT_CHANNELS < 5) 8000b98: 4b7d ldr r3, [pc, #500] ; (8000d90 ) 8000b9a: 681b ldr r3, [r3, #0] 8000b9c: 2b04 cmp r3, #4 8000b9e: f200 8507 bhi.w 80015b0 { if(ACTIVE_CHANNEL == Ch1) 8000ba2: 4b7c ldr r3, [pc, #496] ; (8000d94 ) 8000ba4: 681b ldr r3, [r3, #0] 8000ba6: 2b00 cmp r3, #0 8000ba8: d171 bne.n 8000c8e { if(menupos == Input) 8000baa: 4b7b ldr r3, [pc, #492] ; (8000d98 ) 8000bac: 781b ldrb r3, [r3, #0] 8000bae: b2db uxtb r3, r3 8000bb0: 2b00 cmp r3, #0 8000bb2: d168 bne.n 8000c86 { if(focused) 8000bb4: 4b79 ldr r3, [pc, #484] ; (8000d9c ) 8000bb6: 781b ldrb r3, [r3, #0] 8000bb8: b2db uxtb r3, r3 8000bba: 2b00 cmp r3, #0 8000bbc: d031 beq.n 8000c22 { if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP) 8000bbe: 4b75 ldr r3, [pc, #468] ; (8000d94 ) 8000bc0: 681b ldr r3, [r3, #0] 8000bc2: 4a77 ldr r2, [pc, #476] ; (8000da0 ) 8000bc4: 015b lsls r3, r3, #5 8000bc6: 4413 add r3, r2 8000bc8: 881b ldrh r3, [r3, #0] 8000bca: b29b uxth r3, r3 8000bcc: 2b00 cmp r3, #0 8000bce: f040 84ef bne.w 80015b0 { pardata.amplif[ACTIVE_CHANNEL].IIN++; 8000bd2: 4b70 ldr r3, [pc, #448] ; (8000d94 ) 8000bd4: 681b ldr r3, [r3, #0] 8000bd6: 4972 ldr r1, [pc, #456] ; (8000da0 ) 8000bd8: 015a lsls r2, r3, #5 8000bda: 440a add r2, r1 8000bdc: 8812 ldrh r2, [r2, #0] 8000bde: b292 uxth r2, r2 8000be0: 3201 adds r2, #1 8000be2: b291 uxth r1, r2 8000be4: 4a6e ldr r2, [pc, #440] ; (8000da0 ) 8000be6: 015b lsls r3, r3, #5 8000be8: 4413 add r3, r2 8000bea: 460a mov r2, r1 8000bec: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8000bee: 4b69 ldr r3, [pc, #420] ; (8000d94 ) 8000bf0: 681b ldr r3, [r3, #0] 8000bf2: b2db uxtb r3, r3 8000bf4: 4618 mov r0, r3 8000bf6: f00b ff0d bl 800ca14 8000bfa: 4603 mov r3, r0 8000bfc: 2b00 cmp r3, #0 8000bfe: f000 84d7 beq.w 80015b0 { pardata.amplif[ACTIVE_CHANNEL].IIN--; 8000c02: 4b64 ldr r3, [pc, #400] ; (8000d94 ) 8000c04: 681b ldr r3, [r3, #0] 8000c06: 4966 ldr r1, [pc, #408] ; (8000da0 ) 8000c08: 015a lsls r2, r3, #5 8000c0a: 440a add r2, r1 8000c0c: 8812 ldrh r2, [r2, #0] 8000c0e: b292 uxth r2, r2 8000c10: 3a01 subs r2, #1 8000c12: b291 uxth r1, r2 8000c14: 4a62 ldr r2, [pc, #392] ; (8000da0 ) 8000c16: 015b lsls r3, r3, #5 8000c18: 4413 add r3, r2 8000c1a: 460a mov r2, r1 8000c1c: 801a strh r2, [r3, #0] else if(menupos == Set_100) menupos = Set100; } } break; 8000c1e: f000 bcc7 b.w 80015b0 ACTIVE_CHANNEL = Ch4; 8000c22: 4b5c ldr r3, [pc, #368] ; (8000d94 ) 8000c24: 2203 movs r2, #3 8000c26: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000c28: 4b5a ldr r3, [pc, #360] ; (8000d94 ) 8000c2a: 681b ldr r3, [r3, #0] 8000c2c: 2201 movs r2, #1 8000c2e: fa02 f303 lsl.w r3, r2, r3 8000c32: 461a mov r2, r3 8000c34: 4b5b ldr r3, [pc, #364] ; (8000da4 ) 8000c36: 681b ldr r3, [r3, #0] 8000c38: 4013 ands r3, r2 8000c3a: 2b00 cmp r3, #0 8000c3c: d11e bne.n 8000c7c ACTIVE_CHANNEL = Ch3; 8000c3e: 4b55 ldr r3, [pc, #340] ; (8000d94 ) 8000c40: 2202 movs r2, #2 8000c42: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000c44: 4b53 ldr r3, [pc, #332] ; (8000d94 ) 8000c46: 681b ldr r3, [r3, #0] 8000c48: 2201 movs r2, #1 8000c4a: fa02 f303 lsl.w r3, r2, r3 8000c4e: 461a mov r2, r3 8000c50: 4b54 ldr r3, [pc, #336] ; (8000da4 ) 8000c52: 681b ldr r3, [r3, #0] 8000c54: 4013 ands r3, r2 8000c56: 2b00 cmp r3, #0 8000c58: d110 bne.n 8000c7c ACTIVE_CHANNEL = Ch2; 8000c5a: 4b4e ldr r3, [pc, #312] ; (8000d94 ) 8000c5c: 2201 movs r2, #1 8000c5e: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000c60: 4b4c ldr r3, [pc, #304] ; (8000d94 ) 8000c62: 681b ldr r3, [r3, #0] 8000c64: 2201 movs r2, #1 8000c66: fa02 f303 lsl.w r3, r2, r3 8000c6a: 461a mov r2, r3 8000c6c: 4b4d ldr r3, [pc, #308] ; (8000da4 ) 8000c6e: 681b ldr r3, [r3, #0] 8000c70: 4013 ands r3, r2 8000c72: 2b00 cmp r3, #0 8000c74: d102 bne.n 8000c7c ACTIVE_CHANNEL = Ch1; 8000c76: 4b47 ldr r3, [pc, #284] ; (8000d94 ) 8000c78: 2200 movs r2, #0 8000c7a: 601a str r2, [r3, #0] menupos = Out; 8000c7c: 4b46 ldr r3, [pc, #280] ; (8000d98 ) 8000c7e: 2205 movs r2, #5 8000c80: 701a strb r2, [r3, #0] break; 8000c82: f000 bc95 b.w 80015b0 DoKeyUP(); 8000c86: f000 fc9b bl 80015c0 break; 8000c8a: f000 bc91 b.w 80015b0 if(ACTIVE_CHANNEL == Ch2) 8000c8e: 4b41 ldr r3, [pc, #260] ; (8000d94 ) 8000c90: 681b ldr r3, [r3, #0] 8000c92: 2b01 cmp r3, #1 8000c94: f040 8088 bne.w 8000da8 if(menupos == Input) 8000c98: 4b3f ldr r3, [pc, #252] ; (8000d98 ) 8000c9a: 781b ldrb r3, [r3, #0] 8000c9c: b2db uxtb r3, r3 8000c9e: 2b00 cmp r3, #0 8000ca0: d168 bne.n 8000d74 if(focused) 8000ca2: 4b3e ldr r3, [pc, #248] ; (8000d9c ) 8000ca4: 781b ldrb r3, [r3, #0] 8000ca6: b2db uxtb r3, r3 8000ca8: 2b00 cmp r3, #0 8000caa: d031 beq.n 8000d10 if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP) 8000cac: 4b39 ldr r3, [pc, #228] ; (8000d94 ) 8000cae: 681b ldr r3, [r3, #0] 8000cb0: 4a3b ldr r2, [pc, #236] ; (8000da0 ) 8000cb2: 015b lsls r3, r3, #5 8000cb4: 4413 add r3, r2 8000cb6: 881b ldrh r3, [r3, #0] 8000cb8: b29b uxth r3, r3 8000cba: 2b00 cmp r3, #0 8000cbc: f040 8478 bne.w 80015b0 pardata.amplif[ACTIVE_CHANNEL].IIN++; 8000cc0: 4b34 ldr r3, [pc, #208] ; (8000d94 ) 8000cc2: 681b ldr r3, [r3, #0] 8000cc4: 4936 ldr r1, [pc, #216] ; (8000da0 ) 8000cc6: 015a lsls r2, r3, #5 8000cc8: 440a add r2, r1 8000cca: 8812 ldrh r2, [r2, #0] 8000ccc: b292 uxth r2, r2 8000cce: 3201 adds r2, #1 8000cd0: b291 uxth r1, r2 8000cd2: 4a33 ldr r2, [pc, #204] ; (8000da0 ) 8000cd4: 015b lsls r3, r3, #5 8000cd6: 4413 add r3, r2 8000cd8: 460a mov r2, r1 8000cda: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8000cdc: 4b2d ldr r3, [pc, #180] ; (8000d94 ) 8000cde: 681b ldr r3, [r3, #0] 8000ce0: b2db uxtb r3, r3 8000ce2: 4618 mov r0, r3 8000ce4: f00b fe96 bl 800ca14 8000ce8: 4603 mov r3, r0 8000cea: 2b00 cmp r3, #0 8000cec: f000 8460 beq.w 80015b0 pardata.amplif[ACTIVE_CHANNEL].IIN--; 8000cf0: 4b28 ldr r3, [pc, #160] ; (8000d94 ) 8000cf2: 681b ldr r3, [r3, #0] 8000cf4: 492a ldr r1, [pc, #168] ; (8000da0 ) 8000cf6: 015a lsls r2, r3, #5 8000cf8: 440a add r2, r1 8000cfa: 8812 ldrh r2, [r2, #0] 8000cfc: b292 uxth r2, r2 8000cfe: 3a01 subs r2, #1 8000d00: b291 uxth r1, r2 8000d02: 4a27 ldr r2, [pc, #156] ; (8000da0 ) 8000d04: 015b lsls r3, r3, #5 8000d06: 4413 add r3, r2 8000d08: 460a mov r2, r1 8000d0a: 801a strh r2, [r3, #0] break; 8000d0c: f000 bc50 b.w 80015b0 ACTIVE_CHANNEL = Ch1; 8000d10: 4b20 ldr r3, [pc, #128] ; (8000d94 ) 8000d12: 2200 movs r2, #0 8000d14: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000d16: 4b1f ldr r3, [pc, #124] ; (8000d94 ) 8000d18: 681b ldr r3, [r3, #0] 8000d1a: 2201 movs r2, #1 8000d1c: fa02 f303 lsl.w r3, r2, r3 8000d20: 461a mov r2, r3 8000d22: 4b20 ldr r3, [pc, #128] ; (8000da4 ) 8000d24: 681b ldr r3, [r3, #0] 8000d26: 4013 ands r3, r2 8000d28: 2b00 cmp r3, #0 8000d2a: d11e bne.n 8000d6a ACTIVE_CHANNEL = Ch4; 8000d2c: 4b19 ldr r3, [pc, #100] ; (8000d94 ) 8000d2e: 2203 movs r2, #3 8000d30: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000d32: 4b18 ldr r3, [pc, #96] ; (8000d94 ) 8000d34: 681b ldr r3, [r3, #0] 8000d36: 2201 movs r2, #1 8000d38: fa02 f303 lsl.w r3, r2, r3 8000d3c: 461a mov r2, r3 8000d3e: 4b19 ldr r3, [pc, #100] ; (8000da4 ) 8000d40: 681b ldr r3, [r3, #0] 8000d42: 4013 ands r3, r2 8000d44: 2b00 cmp r3, #0 8000d46: d110 bne.n 8000d6a ACTIVE_CHANNEL = Ch3; 8000d48: 4b12 ldr r3, [pc, #72] ; (8000d94 ) 8000d4a: 2202 movs r2, #2 8000d4c: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000d4e: 4b11 ldr r3, [pc, #68] ; (8000d94 ) 8000d50: 681b ldr r3, [r3, #0] 8000d52: 2201 movs r2, #1 8000d54: fa02 f303 lsl.w r3, r2, r3 8000d58: 461a mov r2, r3 8000d5a: 4b12 ldr r3, [pc, #72] ; (8000da4 ) 8000d5c: 681b ldr r3, [r3, #0] 8000d5e: 4013 ands r3, r2 8000d60: 2b00 cmp r3, #0 8000d62: d102 bne.n 8000d6a ACTIVE_CHANNEL = Ch2; 8000d64: 4b0b ldr r3, [pc, #44] ; (8000d94 ) 8000d66: 2201 movs r2, #1 8000d68: 601a str r2, [r3, #0] menupos = Out; 8000d6a: 4b0b ldr r3, [pc, #44] ; (8000d98 ) 8000d6c: 2205 movs r2, #5 8000d6e: 701a strb r2, [r3, #0] break; 8000d70: f000 bc1e b.w 80015b0 DoKeyUP(); 8000d74: f000 fc24 bl 80015c0 break; 8000d78: f000 bc1a b.w 80015b0 8000d7c: 2002024c .word 0x2002024c 8000d80: 2006b9cc .word 0x2006b9cc 8000d84: 2006b2f0 .word 0x2006b2f0 8000d88: 2006b9bc .word 0x2006b9bc 8000d8c: 20020245 .word 0x20020245 8000d90: 2006b2d4 .word 0x2006b2d4 8000d94: 2006b2d0 .word 0x2006b2d0 8000d98: 20020010 .word 0x20020010 8000d9c: 20020250 .word 0x20020250 8000da0: 2006b510 .word 0x2006b510 8000da4: 20020028 .word 0x20020028 if(ACTIVE_CHANNEL == Ch3) 8000da8: 4b9e ldr r3, [pc, #632] ; (8001024 ) 8000daa: 681b ldr r3, [r3, #0] 8000dac: 2b02 cmp r3, #2 8000dae: d16e bne.n 8000e8e if(menupos == Input) 8000db0: 4b9d ldr r3, [pc, #628] ; (8001028 ) 8000db2: 781b ldrb r3, [r3, #0] 8000db4: b2db uxtb r3, r3 8000db6: 2b00 cmp r3, #0 8000db8: d166 bne.n 8000e88 if(focused) 8000dba: 4b9c ldr r3, [pc, #624] ; (800102c ) 8000dbc: 781b ldrb r3, [r3, #0] 8000dbe: b2db uxtb r3, r3 8000dc0: 2b00 cmp r3, #0 8000dc2: d030 beq.n 8000e26 if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP) 8000dc4: 4b97 ldr r3, [pc, #604] ; (8001024 ) 8000dc6: 681b ldr r3, [r3, #0] 8000dc8: 4a99 ldr r2, [pc, #612] ; (8001030 ) 8000dca: 015b lsls r3, r3, #5 8000dcc: 4413 add r3, r2 8000dce: 881b ldrh r3, [r3, #0] 8000dd0: b29b uxth r3, r3 8000dd2: 2b00 cmp r3, #0 8000dd4: f040 83ec bne.w 80015b0 pardata.amplif[ACTIVE_CHANNEL].IIN++; 8000dd8: 4b92 ldr r3, [pc, #584] ; (8001024 ) 8000dda: 681b ldr r3, [r3, #0] 8000ddc: 4994 ldr r1, [pc, #592] ; (8001030 ) 8000dde: 015a lsls r2, r3, #5 8000de0: 440a add r2, r1 8000de2: 8812 ldrh r2, [r2, #0] 8000de4: b292 uxth r2, r2 8000de6: 3201 adds r2, #1 8000de8: b291 uxth r1, r2 8000dea: 4a91 ldr r2, [pc, #580] ; (8001030 ) 8000dec: 015b lsls r3, r3, #5 8000dee: 4413 add r3, r2 8000df0: 460a mov r2, r1 8000df2: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8000df4: 4b8b ldr r3, [pc, #556] ; (8001024 ) 8000df6: 681b ldr r3, [r3, #0] 8000df8: b2db uxtb r3, r3 8000dfa: 4618 mov r0, r3 8000dfc: f00b fe0a bl 800ca14 8000e00: 4603 mov r3, r0 8000e02: 2b00 cmp r3, #0 8000e04: f000 83d4 beq.w 80015b0 pardata.amplif[ACTIVE_CHANNEL].IIN--; 8000e08: 4b86 ldr r3, [pc, #536] ; (8001024 ) 8000e0a: 681b ldr r3, [r3, #0] 8000e0c: 4988 ldr r1, [pc, #544] ; (8001030 ) 8000e0e: 015a lsls r2, r3, #5 8000e10: 440a add r2, r1 8000e12: 8812 ldrh r2, [r2, #0] 8000e14: b292 uxth r2, r2 8000e16: 3a01 subs r2, #1 8000e18: b291 uxth r1, r2 8000e1a: 4a85 ldr r2, [pc, #532] ; (8001030 ) 8000e1c: 015b lsls r3, r3, #5 8000e1e: 4413 add r3, r2 8000e20: 460a mov r2, r1 8000e22: 801a strh r2, [r3, #0] break; 8000e24: e3c4 b.n 80015b0 ACTIVE_CHANNEL = Ch2; 8000e26: 4b7f ldr r3, [pc, #508] ; (8001024 ) 8000e28: 2201 movs r2, #1 8000e2a: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000e2c: 4b7d ldr r3, [pc, #500] ; (8001024 ) 8000e2e: 681b ldr r3, [r3, #0] 8000e30: 2201 movs r2, #1 8000e32: fa02 f303 lsl.w r3, r2, r3 8000e36: 461a mov r2, r3 8000e38: 4b7e ldr r3, [pc, #504] ; (8001034 ) 8000e3a: 681b ldr r3, [r3, #0] 8000e3c: 4013 ands r3, r2 8000e3e: 2b00 cmp r3, #0 8000e40: d11e bne.n 8000e80 ACTIVE_CHANNEL = Ch1; 8000e42: 4b78 ldr r3, [pc, #480] ; (8001024 ) 8000e44: 2200 movs r2, #0 8000e46: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000e48: 4b76 ldr r3, [pc, #472] ; (8001024 ) 8000e4a: 681b ldr r3, [r3, #0] 8000e4c: 2201 movs r2, #1 8000e4e: fa02 f303 lsl.w r3, r2, r3 8000e52: 461a mov r2, r3 8000e54: 4b77 ldr r3, [pc, #476] ; (8001034 ) 8000e56: 681b ldr r3, [r3, #0] 8000e58: 4013 ands r3, r2 8000e5a: 2b00 cmp r3, #0 8000e5c: d110 bne.n 8000e80 ACTIVE_CHANNEL = Ch4; 8000e5e: 4b71 ldr r3, [pc, #452] ; (8001024 ) 8000e60: 2203 movs r2, #3 8000e62: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000e64: 4b6f ldr r3, [pc, #444] ; (8001024 ) 8000e66: 681b ldr r3, [r3, #0] 8000e68: 2201 movs r2, #1 8000e6a: fa02 f303 lsl.w r3, r2, r3 8000e6e: 461a mov r2, r3 8000e70: 4b70 ldr r3, [pc, #448] ; (8001034 ) 8000e72: 681b ldr r3, [r3, #0] 8000e74: 4013 ands r3, r2 8000e76: 2b00 cmp r3, #0 8000e78: d102 bne.n 8000e80 ACTIVE_CHANNEL = Ch3; 8000e7a: 4b6a ldr r3, [pc, #424] ; (8001024 ) 8000e7c: 2202 movs r2, #2 8000e7e: 601a str r2, [r3, #0] menupos = Out; 8000e80: 4b69 ldr r3, [pc, #420] ; (8001028 ) 8000e82: 2205 movs r2, #5 8000e84: 701a strb r2, [r3, #0] break; 8000e86: e393 b.n 80015b0 DoKeyUP(); 8000e88: f000 fb9a bl 80015c0 break; 8000e8c: e390 b.n 80015b0 if(ACTIVE_CHANNEL == Ch4) 8000e8e: 4b65 ldr r3, [pc, #404] ; (8001024 ) 8000e90: 681b ldr r3, [r3, #0] 8000e92: 2b03 cmp r3, #3 8000e94: f040 838c bne.w 80015b0 if(menupos == Input) 8000e98: 4b63 ldr r3, [pc, #396] ; (8001028 ) 8000e9a: 781b ldrb r3, [r3, #0] 8000e9c: b2db uxtb r3, r3 8000e9e: 2b00 cmp r3, #0 8000ea0: d166 bne.n 8000f70 if(focused) 8000ea2: 4b62 ldr r3, [pc, #392] ; (800102c ) 8000ea4: 781b ldrb r3, [r3, #0] 8000ea6: b2db uxtb r3, r3 8000ea8: 2b00 cmp r3, #0 8000eaa: d030 beq.n 8000f0e if(pardata.amplif[ACTIVE_CHANNEL].IIN < ICP) 8000eac: 4b5d ldr r3, [pc, #372] ; (8001024 ) 8000eae: 681b ldr r3, [r3, #0] 8000eb0: 4a5f ldr r2, [pc, #380] ; (8001030 ) 8000eb2: 015b lsls r3, r3, #5 8000eb4: 4413 add r3, r2 8000eb6: 881b ldrh r3, [r3, #0] 8000eb8: b29b uxth r3, r3 8000eba: 2b00 cmp r3, #0 8000ebc: f040 8378 bne.w 80015b0 pardata.amplif[ACTIVE_CHANNEL].IIN++; 8000ec0: 4b58 ldr r3, [pc, #352] ; (8001024 ) 8000ec2: 681b ldr r3, [r3, #0] 8000ec4: 495a ldr r1, [pc, #360] ; (8001030 ) 8000ec6: 015a lsls r2, r3, #5 8000ec8: 440a add r2, r1 8000eca: 8812 ldrh r2, [r2, #0] 8000ecc: b292 uxth r2, r2 8000ece: 3201 adds r2, #1 8000ed0: b291 uxth r1, r2 8000ed2: 4a57 ldr r2, [pc, #348] ; (8001030 ) 8000ed4: 015b lsls r3, r3, #5 8000ed6: 4413 add r3, r2 8000ed8: 460a mov r2, r1 8000eda: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8000edc: 4b51 ldr r3, [pc, #324] ; (8001024 ) 8000ede: 681b ldr r3, [r3, #0] 8000ee0: b2db uxtb r3, r3 8000ee2: 4618 mov r0, r3 8000ee4: f00b fd96 bl 800ca14 8000ee8: 4603 mov r3, r0 8000eea: 2b00 cmp r3, #0 8000eec: f000 8360 beq.w 80015b0 pardata.amplif[ACTIVE_CHANNEL].IIN--; 8000ef0: 4b4c ldr r3, [pc, #304] ; (8001024 ) 8000ef2: 681b ldr r3, [r3, #0] 8000ef4: 494e ldr r1, [pc, #312] ; (8001030 ) 8000ef6: 015a lsls r2, r3, #5 8000ef8: 440a add r2, r1 8000efa: 8812 ldrh r2, [r2, #0] 8000efc: b292 uxth r2, r2 8000efe: 3a01 subs r2, #1 8000f00: b291 uxth r1, r2 8000f02: 4a4b ldr r2, [pc, #300] ; (8001030 ) 8000f04: 015b lsls r3, r3, #5 8000f06: 4413 add r3, r2 8000f08: 460a mov r2, r1 8000f0a: 801a strh r2, [r3, #0] break; 8000f0c: e350 b.n 80015b0 ACTIVE_CHANNEL = Ch3; 8000f0e: 4b45 ldr r3, [pc, #276] ; (8001024 ) 8000f10: 2202 movs r2, #2 8000f12: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000f14: 4b43 ldr r3, [pc, #268] ; (8001024 ) 8000f16: 681b ldr r3, [r3, #0] 8000f18: 2201 movs r2, #1 8000f1a: fa02 f303 lsl.w r3, r2, r3 8000f1e: 461a mov r2, r3 8000f20: 4b44 ldr r3, [pc, #272] ; (8001034 ) 8000f22: 681b ldr r3, [r3, #0] 8000f24: 4013 ands r3, r2 8000f26: 2b00 cmp r3, #0 8000f28: d11e bne.n 8000f68 ACTIVE_CHANNEL = Ch2; 8000f2a: 4b3e ldr r3, [pc, #248] ; (8001024 ) 8000f2c: 2201 movs r2, #1 8000f2e: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000f30: 4b3c ldr r3, [pc, #240] ; (8001024 ) 8000f32: 681b ldr r3, [r3, #0] 8000f34: 2201 movs r2, #1 8000f36: fa02 f303 lsl.w r3, r2, r3 8000f3a: 461a mov r2, r3 8000f3c: 4b3d ldr r3, [pc, #244] ; (8001034 ) 8000f3e: 681b ldr r3, [r3, #0] 8000f40: 4013 ands r3, r2 8000f42: 2b00 cmp r3, #0 8000f44: d110 bne.n 8000f68 ACTIVE_CHANNEL = Ch1; 8000f46: 4b37 ldr r3, [pc, #220] ; (8001024 ) 8000f48: 2200 movs r2, #0 8000f4a: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8000f4c: 4b35 ldr r3, [pc, #212] ; (8001024 ) 8000f4e: 681b ldr r3, [r3, #0] 8000f50: 2201 movs r2, #1 8000f52: fa02 f303 lsl.w r3, r2, r3 8000f56: 461a mov r2, r3 8000f58: 4b36 ldr r3, [pc, #216] ; (8001034 ) 8000f5a: 681b ldr r3, [r3, #0] 8000f5c: 4013 ands r3, r2 8000f5e: 2b00 cmp r3, #0 8000f60: d102 bne.n 8000f68 ACTIVE_CHANNEL = Ch4; 8000f62: 4b30 ldr r3, [pc, #192] ; (8001024 ) 8000f64: 2203 movs r2, #3 8000f66: 601a str r2, [r3, #0] menupos = Out; 8000f68: 4b2f ldr r3, [pc, #188] ; (8001028 ) 8000f6a: 2205 movs r2, #5 8000f6c: 701a strb r2, [r3, #0] break; 8000f6e: e31f b.n 80015b0 DoKeyUP(); 8000f70: f000 fb26 bl 80015c0 break; 8000f74: e31c b.n 80015b0 if(menu == CALIBR_00) 8000f76: 4b30 ldr r3, [pc, #192] ; (8001038 ) 8000f78: 781b ldrb r3, [r3, #0] 8000f7a: b2db uxtb r3, r3 8000f7c: 2b01 cmp r3, #1 8000f7e: d10d bne.n 8000f9c if(menupos > Ch1) menupos--; 8000f80: 4b29 ldr r3, [pc, #164] ; (8001028 ) 8000f82: 781b ldrb r3, [r3, #0] 8000f84: b2db uxtb r3, r3 8000f86: 2b00 cmp r3, #0 8000f88: f000 8312 beq.w 80015b0 8000f8c: 4b26 ldr r3, [pc, #152] ; (8001028 ) 8000f8e: 781b ldrb r3, [r3, #0] 8000f90: b2db uxtb r3, r3 8000f92: 3b01 subs r3, #1 8000f94: b2da uxtb r2, r3 8000f96: 4b24 ldr r3, [pc, #144] ; (8001028 ) 8000f98: 701a strb r2, [r3, #0] break; 8000f9a: e309 b.n 80015b0 if(menu >= CALIBR_0 && menu <= CALIBR_22) 8000f9c: 4b26 ldr r3, [pc, #152] ; (8001038 ) 8000f9e: 781b ldrb r3, [r3, #0] 8000fa0: b2db uxtb r3, r3 8000fa2: 2b01 cmp r3, #1 8000fa4: f240 8304 bls.w 80015b0 8000fa8: 4b23 ldr r3, [pc, #140] ; (8001038 ) 8000faa: 781b ldrb r3, [r3, #0] 8000fac: b2db uxtb r3, r3 8000fae: 2b18 cmp r3, #24 8000fb0: f200 82fe bhi.w 80015b0 if(menupos == Next) 8000fb4: 4b1c ldr r3, [pc, #112] ; (8001028 ) 8000fb6: 781b ldrb r3, [r3, #0] 8000fb8: b2db uxtb r3, r3 8000fba: 2b06 cmp r3, #6 8000fbc: d103 bne.n 8000fc6 menupos = Set_1; 8000fbe: 4b1a ldr r3, [pc, #104] ; (8001028 ) 8000fc0: 2205 movs r2, #5 8000fc2: 701a strb r2, [r3, #0] break; 8000fc4: e2f4 b.n 80015b0 if(menupos == Set_1) 8000fc6: 4b18 ldr r3, [pc, #96] ; (8001028 ) 8000fc8: 781b ldrb r3, [r3, #0] 8000fca: b2db uxtb r3, r3 8000fcc: 2b05 cmp r3, #5 8000fce: d103 bne.n 8000fd8 menupos = Set1; 8000fd0: 4b15 ldr r3, [pc, #84] ; (8001028 ) 8000fd2: 2204 movs r2, #4 8000fd4: 701a strb r2, [r3, #0] break; 8000fd6: e2eb b.n 80015b0 if(menupos == Set1) 8000fd8: 4b13 ldr r3, [pc, #76] ; (8001028 ) 8000fda: 781b ldrb r3, [r3, #0] 8000fdc: b2db uxtb r3, r3 8000fde: 2b04 cmp r3, #4 8000fe0: d103 bne.n 8000fea menupos = Set_10; 8000fe2: 4b11 ldr r3, [pc, #68] ; (8001028 ) 8000fe4: 2203 movs r2, #3 8000fe6: 701a strb r2, [r3, #0] break; 8000fe8: e2e2 b.n 80015b0 if(menupos == Set_10) 8000fea: 4b0f ldr r3, [pc, #60] ; (8001028 ) 8000fec: 781b ldrb r3, [r3, #0] 8000fee: b2db uxtb r3, r3 8000ff0: 2b03 cmp r3, #3 8000ff2: d103 bne.n 8000ffc menupos = Set10; 8000ff4: 4b0c ldr r3, [pc, #48] ; (8001028 ) 8000ff6: 2202 movs r2, #2 8000ff8: 701a strb r2, [r3, #0] break; 8000ffa: e2d9 b.n 80015b0 if(menupos == Set10) 8000ffc: 4b0a ldr r3, [pc, #40] ; (8001028 ) 8000ffe: 781b ldrb r3, [r3, #0] 8001000: b2db uxtb r3, r3 8001002: 2b02 cmp r3, #2 8001004: d103 bne.n 800100e menupos = Set_100; 8001006: 4b08 ldr r3, [pc, #32] ; (8001028 ) 8001008: 2201 movs r2, #1 800100a: 701a strb r2, [r3, #0] break; 800100c: e2d0 b.n 80015b0 if(menupos == Set_100) 800100e: 4b06 ldr r3, [pc, #24] ; (8001028 ) 8001010: 781b ldrb r3, [r3, #0] 8001012: b2db uxtb r3, r3 8001014: 2b01 cmp r3, #1 8001016: f040 82cb bne.w 80015b0 menupos = Set100; 800101a: 4b03 ldr r3, [pc, #12] ; (8001028 ) 800101c: 2200 movs r2, #0 800101e: 701a strb r2, [r3, #0] break; 8001020: e2c6 b.n 80015b0 8001022: bf00 nop 8001024: 2006b2d0 .word 0x2006b2d0 8001028: 20020010 .word 0x20020010 800102c: 20020250 .word 0x20020250 8001030: 2006b510 .word 0x2006b510 8001034: 20020028 .word 0x20020028 8001038: 20020245 .word 0x20020245 case KEY_DN://TODO KEY DOWN if(menu == MAIN) 800103c: 4ba8 ldr r3, [pc, #672] ; (80012e0 ) 800103e: 781b ldrb r3, [r3, #0] 8001040: b2db uxtb r3, r3 8001042: 2b00 cmp r3, #0 8001044: f040 811a bne.w 800127c { if(CNT_CHANNELS < 5) 8001048: 4ba6 ldr r3, [pc, #664] ; (80012e4 ) 800104a: 681b ldr r3, [r3, #0] 800104c: 2b04 cmp r3, #4 800104e: f200 82b1 bhi.w 80015b4 { if(ACTIVE_CHANNEL == Ch1) 8001052: 4ba5 ldr r3, [pc, #660] ; (80012e8 ) 8001054: 681b ldr r3, [r3, #0] 8001056: 2b00 cmp r3, #0 8001058: d140 bne.n 80010dc { if(menupos == Out) 800105a: 4ba4 ldr r3, [pc, #656] ; (80012ec ) 800105c: 781b ldrb r3, [r3, #0] 800105e: b2db uxtb r3, r3 8001060: 2b05 cmp r3, #5 8001062: d138 bne.n 80010d6 { if(focused) 8001064: 4ba2 ldr r3, [pc, #648] ; (80012f0 ) 8001066: 781b ldrb r3, [r3, #0] 8001068: b2db uxtb r3, r3 800106a: 2b00 cmp r3, #0 800106c: d002 beq.n 8001074 { DoKeyDN(); 800106e: f001 fdb7 bl 8002be0 else if(menupos == Set_1) menupos = Next; } } break; 8001072: e29f b.n 80015b4 ACTIVE_CHANNEL = Ch2; 8001074: 4b9c ldr r3, [pc, #624] ; (80012e8 ) 8001076: 2201 movs r2, #1 8001078: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800107a: 4b9b ldr r3, [pc, #620] ; (80012e8 ) 800107c: 681b ldr r3, [r3, #0] 800107e: 2201 movs r2, #1 8001080: fa02 f303 lsl.w r3, r2, r3 8001084: 461a mov r2, r3 8001086: 4b9b ldr r3, [pc, #620] ; (80012f4 ) 8001088: 681b ldr r3, [r3, #0] 800108a: 4013 ands r3, r2 800108c: 2b00 cmp r3, #0 800108e: d11e bne.n 80010ce ACTIVE_CHANNEL = Ch3; 8001090: 4b95 ldr r3, [pc, #596] ; (80012e8 ) 8001092: 2202 movs r2, #2 8001094: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001096: 4b94 ldr r3, [pc, #592] ; (80012e8 ) 8001098: 681b ldr r3, [r3, #0] 800109a: 2201 movs r2, #1 800109c: fa02 f303 lsl.w r3, r2, r3 80010a0: 461a mov r2, r3 80010a2: 4b94 ldr r3, [pc, #592] ; (80012f4 ) 80010a4: 681b ldr r3, [r3, #0] 80010a6: 4013 ands r3, r2 80010a8: 2b00 cmp r3, #0 80010aa: d110 bne.n 80010ce ACTIVE_CHANNEL = Ch4; 80010ac: 4b8e ldr r3, [pc, #568] ; (80012e8 ) 80010ae: 2203 movs r2, #3 80010b0: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 80010b2: 4b8d ldr r3, [pc, #564] ; (80012e8 ) 80010b4: 681b ldr r3, [r3, #0] 80010b6: 2201 movs r2, #1 80010b8: fa02 f303 lsl.w r3, r2, r3 80010bc: 461a mov r2, r3 80010be: 4b8d ldr r3, [pc, #564] ; (80012f4 ) 80010c0: 681b ldr r3, [r3, #0] 80010c2: 4013 ands r3, r2 80010c4: 2b00 cmp r3, #0 80010c6: d102 bne.n 80010ce ACTIVE_CHANNEL = Ch1; 80010c8: 4b87 ldr r3, [pc, #540] ; (80012e8 ) 80010ca: 2200 movs r2, #0 80010cc: 601a str r2, [r3, #0] menupos = Input; 80010ce: 4b87 ldr r3, [pc, #540] ; (80012ec ) 80010d0: 2200 movs r2, #0 80010d2: 701a strb r2, [r3, #0] break; 80010d4: e26e b.n 80015b4 DoKeyDN(); 80010d6: f001 fd83 bl 8002be0 break; 80010da: e26b b.n 80015b4 if(ACTIVE_CHANNEL == Ch2) 80010dc: 4b82 ldr r3, [pc, #520] ; (80012e8 ) 80010de: 681b ldr r3, [r3, #0] 80010e0: 2b01 cmp r3, #1 80010e2: d140 bne.n 8001166 if(menupos == Out) 80010e4: 4b81 ldr r3, [pc, #516] ; (80012ec ) 80010e6: 781b ldrb r3, [r3, #0] 80010e8: b2db uxtb r3, r3 80010ea: 2b05 cmp r3, #5 80010ec: d138 bne.n 8001160 if(focused) 80010ee: 4b80 ldr r3, [pc, #512] ; (80012f0 ) 80010f0: 781b ldrb r3, [r3, #0] 80010f2: b2db uxtb r3, r3 80010f4: 2b00 cmp r3, #0 80010f6: d002 beq.n 80010fe DoKeyDN(); 80010f8: f001 fd72 bl 8002be0 break; 80010fc: e25a b.n 80015b4 ACTIVE_CHANNEL = Ch3; 80010fe: 4b7a ldr r3, [pc, #488] ; (80012e8 ) 8001100: 2202 movs r2, #2 8001102: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001104: 4b78 ldr r3, [pc, #480] ; (80012e8 ) 8001106: 681b ldr r3, [r3, #0] 8001108: 2201 movs r2, #1 800110a: fa02 f303 lsl.w r3, r2, r3 800110e: 461a mov r2, r3 8001110: 4b78 ldr r3, [pc, #480] ; (80012f4 ) 8001112: 681b ldr r3, [r3, #0] 8001114: 4013 ands r3, r2 8001116: 2b00 cmp r3, #0 8001118: d11e bne.n 8001158 ACTIVE_CHANNEL = Ch4; 800111a: 4b73 ldr r3, [pc, #460] ; (80012e8 ) 800111c: 2203 movs r2, #3 800111e: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001120: 4b71 ldr r3, [pc, #452] ; (80012e8 ) 8001122: 681b ldr r3, [r3, #0] 8001124: 2201 movs r2, #1 8001126: fa02 f303 lsl.w r3, r2, r3 800112a: 461a mov r2, r3 800112c: 4b71 ldr r3, [pc, #452] ; (80012f4 ) 800112e: 681b ldr r3, [r3, #0] 8001130: 4013 ands r3, r2 8001132: 2b00 cmp r3, #0 8001134: d110 bne.n 8001158 ACTIVE_CHANNEL = Ch1; 8001136: 4b6c ldr r3, [pc, #432] ; (80012e8 ) 8001138: 2200 movs r2, #0 800113a: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800113c: 4b6a ldr r3, [pc, #424] ; (80012e8 ) 800113e: 681b ldr r3, [r3, #0] 8001140: 2201 movs r2, #1 8001142: fa02 f303 lsl.w r3, r2, r3 8001146: 461a mov r2, r3 8001148: 4b6a ldr r3, [pc, #424] ; (80012f4 ) 800114a: 681b ldr r3, [r3, #0] 800114c: 4013 ands r3, r2 800114e: 2b00 cmp r3, #0 8001150: d102 bne.n 8001158 ACTIVE_CHANNEL = Ch2; 8001152: 4b65 ldr r3, [pc, #404] ; (80012e8 ) 8001154: 2201 movs r2, #1 8001156: 601a str r2, [r3, #0] menupos = Input; 8001158: 4b64 ldr r3, [pc, #400] ; (80012ec ) 800115a: 2200 movs r2, #0 800115c: 701a strb r2, [r3, #0] break; 800115e: e229 b.n 80015b4 DoKeyDN(); 8001160: f001 fd3e bl 8002be0 break; 8001164: e226 b.n 80015b4 if(ACTIVE_CHANNEL == Ch3) 8001166: 4b60 ldr r3, [pc, #384] ; (80012e8 ) 8001168: 681b ldr r3, [r3, #0] 800116a: 2b02 cmp r3, #2 800116c: d140 bne.n 80011f0 if(menupos == Out) 800116e: 4b5f ldr r3, [pc, #380] ; (80012ec ) 8001170: 781b ldrb r3, [r3, #0] 8001172: b2db uxtb r3, r3 8001174: 2b05 cmp r3, #5 8001176: d138 bne.n 80011ea if(focused) 8001178: 4b5d ldr r3, [pc, #372] ; (80012f0 ) 800117a: 781b ldrb r3, [r3, #0] 800117c: b2db uxtb r3, r3 800117e: 2b00 cmp r3, #0 8001180: d002 beq.n 8001188 DoKeyDN(); 8001182: f001 fd2d bl 8002be0 break; 8001186: e215 b.n 80015b4 ACTIVE_CHANNEL = Ch4; 8001188: 4b57 ldr r3, [pc, #348] ; (80012e8 ) 800118a: 2203 movs r2, #3 800118c: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800118e: 4b56 ldr r3, [pc, #344] ; (80012e8 ) 8001190: 681b ldr r3, [r3, #0] 8001192: 2201 movs r2, #1 8001194: fa02 f303 lsl.w r3, r2, r3 8001198: 461a mov r2, r3 800119a: 4b56 ldr r3, [pc, #344] ; (80012f4 ) 800119c: 681b ldr r3, [r3, #0] 800119e: 4013 ands r3, r2 80011a0: 2b00 cmp r3, #0 80011a2: d11e bne.n 80011e2 ACTIVE_CHANNEL = Ch1; 80011a4: 4b50 ldr r3, [pc, #320] ; (80012e8 ) 80011a6: 2200 movs r2, #0 80011a8: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 80011aa: 4b4f ldr r3, [pc, #316] ; (80012e8 ) 80011ac: 681b ldr r3, [r3, #0] 80011ae: 2201 movs r2, #1 80011b0: fa02 f303 lsl.w r3, r2, r3 80011b4: 461a mov r2, r3 80011b6: 4b4f ldr r3, [pc, #316] ; (80012f4 ) 80011b8: 681b ldr r3, [r3, #0] 80011ba: 4013 ands r3, r2 80011bc: 2b00 cmp r3, #0 80011be: d110 bne.n 80011e2 ACTIVE_CHANNEL = Ch2; 80011c0: 4b49 ldr r3, [pc, #292] ; (80012e8 ) 80011c2: 2201 movs r2, #1 80011c4: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 80011c6: 4b48 ldr r3, [pc, #288] ; (80012e8 ) 80011c8: 681b ldr r3, [r3, #0] 80011ca: 2201 movs r2, #1 80011cc: fa02 f303 lsl.w r3, r2, r3 80011d0: 461a mov r2, r3 80011d2: 4b48 ldr r3, [pc, #288] ; (80012f4 ) 80011d4: 681b ldr r3, [r3, #0] 80011d6: 4013 ands r3, r2 80011d8: 2b00 cmp r3, #0 80011da: d102 bne.n 80011e2 ACTIVE_CHANNEL = Ch3; 80011dc: 4b42 ldr r3, [pc, #264] ; (80012e8 ) 80011de: 2202 movs r2, #2 80011e0: 601a str r2, [r3, #0] menupos = Input; 80011e2: 4b42 ldr r3, [pc, #264] ; (80012ec ) 80011e4: 2200 movs r2, #0 80011e6: 701a strb r2, [r3, #0] break; 80011e8: e1e4 b.n 80015b4 DoKeyDN(); 80011ea: f001 fcf9 bl 8002be0 break; 80011ee: e1e1 b.n 80015b4 if(ACTIVE_CHANNEL == Ch4) 80011f0: 4b3d ldr r3, [pc, #244] ; (80012e8 ) 80011f2: 681b ldr r3, [r3, #0] 80011f4: 2b03 cmp r3, #3 80011f6: f040 81dd bne.w 80015b4 if(menupos == Out) 80011fa: 4b3c ldr r3, [pc, #240] ; (80012ec ) 80011fc: 781b ldrb r3, [r3, #0] 80011fe: b2db uxtb r3, r3 8001200: 2b05 cmp r3, #5 8001202: d138 bne.n 8001276 if(focused) 8001204: 4b3a ldr r3, [pc, #232] ; (80012f0 ) 8001206: 781b ldrb r3, [r3, #0] 8001208: b2db uxtb r3, r3 800120a: 2b00 cmp r3, #0 800120c: d002 beq.n 8001214 DoKeyDN(); 800120e: f001 fce7 bl 8002be0 break; 8001212: e1cf b.n 80015b4 ACTIVE_CHANNEL = Ch1; 8001214: 4b34 ldr r3, [pc, #208] ; (80012e8 ) 8001216: 2200 movs r2, #0 8001218: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 800121a: 4b33 ldr r3, [pc, #204] ; (80012e8 ) 800121c: 681b ldr r3, [r3, #0] 800121e: 2201 movs r2, #1 8001220: fa02 f303 lsl.w r3, r2, r3 8001224: 461a mov r2, r3 8001226: 4b33 ldr r3, [pc, #204] ; (80012f4 ) 8001228: 681b ldr r3, [r3, #0] 800122a: 4013 ands r3, r2 800122c: 2b00 cmp r3, #0 800122e: d11e bne.n 800126e ACTIVE_CHANNEL = Ch2; 8001230: 4b2d ldr r3, [pc, #180] ; (80012e8 ) 8001232: 2201 movs r2, #1 8001234: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001236: 4b2c ldr r3, [pc, #176] ; (80012e8 ) 8001238: 681b ldr r3, [r3, #0] 800123a: 2201 movs r2, #1 800123c: fa02 f303 lsl.w r3, r2, r3 8001240: 461a mov r2, r3 8001242: 4b2c ldr r3, [pc, #176] ; (80012f4 ) 8001244: 681b ldr r3, [r3, #0] 8001246: 4013 ands r3, r2 8001248: 2b00 cmp r3, #0 800124a: d110 bne.n 800126e ACTIVE_CHANNEL = Ch3; 800124c: 4b26 ldr r3, [pc, #152] ; (80012e8 ) 800124e: 2202 movs r2, #2 8001250: 601a str r2, [r3, #0] if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0) 8001252: 4b25 ldr r3, [pc, #148] ; (80012e8 ) 8001254: 681b ldr r3, [r3, #0] 8001256: 2201 movs r2, #1 8001258: fa02 f303 lsl.w r3, r2, r3 800125c: 461a mov r2, r3 800125e: 4b25 ldr r3, [pc, #148] ; (80012f4 ) 8001260: 681b ldr r3, [r3, #0] 8001262: 4013 ands r3, r2 8001264: 2b00 cmp r3, #0 8001266: d102 bne.n 800126e ACTIVE_CHANNEL = Ch4; 8001268: 4b1f ldr r3, [pc, #124] ; (80012e8 ) 800126a: 2203 movs r2, #3 800126c: 601a str r2, [r3, #0] menupos = Input; 800126e: 4b1f ldr r3, [pc, #124] ; (80012ec ) 8001270: 2200 movs r2, #0 8001272: 701a strb r2, [r3, #0] break; 8001274: e19e b.n 80015b4 DoKeyDN(); 8001276: f001 fcb3 bl 8002be0 break; 800127a: e19b b.n 80015b4 if(menu == CALIBR_00) 800127c: 4b18 ldr r3, [pc, #96] ; (80012e0 ) 800127e: 781b ldrb r3, [r3, #0] 8001280: b2db uxtb r3, r3 8001282: 2b01 cmp r3, #1 8001284: d10d bne.n 80012a2 if(menupos < Ch5) menupos++; 8001286: 4b19 ldr r3, [pc, #100] ; (80012ec ) 8001288: 781b ldrb r3, [r3, #0] 800128a: b2db uxtb r3, r3 800128c: 2b03 cmp r3, #3 800128e: f200 8191 bhi.w 80015b4 8001292: 4b16 ldr r3, [pc, #88] ; (80012ec ) 8001294: 781b ldrb r3, [r3, #0] 8001296: b2db uxtb r3, r3 8001298: 3301 adds r3, #1 800129a: b2da uxtb r2, r3 800129c: 4b13 ldr r3, [pc, #76] ; (80012ec ) 800129e: 701a strb r2, [r3, #0] break; 80012a0: e188 b.n 80015b4 if(menu >= CALIBR_0 && menu <= CALIBR_22) 80012a2: 4b0f ldr r3, [pc, #60] ; (80012e0 ) 80012a4: 781b ldrb r3, [r3, #0] 80012a6: b2db uxtb r3, r3 80012a8: 2b01 cmp r3, #1 80012aa: f240 8183 bls.w 80015b4 80012ae: 4b0c ldr r3, [pc, #48] ; (80012e0 ) 80012b0: 781b ldrb r3, [r3, #0] 80012b2: b2db uxtb r3, r3 80012b4: 2b18 cmp r3, #24 80012b6: f200 817d bhi.w 80015b4 if(menupos == Set100) 80012ba: 4b0c ldr r3, [pc, #48] ; (80012ec ) 80012bc: 781b ldrb r3, [r3, #0] 80012be: b2db uxtb r3, r3 80012c0: 2b00 cmp r3, #0 80012c2: d103 bne.n 80012cc menupos = Set_100; 80012c4: 4b09 ldr r3, [pc, #36] ; (80012ec ) 80012c6: 2201 movs r2, #1 80012c8: 701a strb r2, [r3, #0] break; 80012ca: e173 b.n 80015b4 if(menupos == Set_100) 80012cc: 4b07 ldr r3, [pc, #28] ; (80012ec ) 80012ce: 781b ldrb r3, [r3, #0] 80012d0: b2db uxtb r3, r3 80012d2: 2b01 cmp r3, #1 80012d4: d110 bne.n 80012f8 menupos = Set10; 80012d6: 4b05 ldr r3, [pc, #20] ; (80012ec ) 80012d8: 2202 movs r2, #2 80012da: 701a strb r2, [r3, #0] break; 80012dc: e16a b.n 80015b4 80012de: bf00 nop 80012e0: 20020245 .word 0x20020245 80012e4: 2006b2d4 .word 0x2006b2d4 80012e8: 2006b2d0 .word 0x2006b2d0 80012ec: 20020010 .word 0x20020010 80012f0: 20020250 .word 0x20020250 80012f4: 20020028 .word 0x20020028 if(menupos == Set10) 80012f8: 4ba7 ldr r3, [pc, #668] ; (8001598 ) 80012fa: 781b ldrb r3, [r3, #0] 80012fc: b2db uxtb r3, r3 80012fe: 2b02 cmp r3, #2 8001300: d103 bne.n 800130a menupos = Set_10; 8001302: 4ba5 ldr r3, [pc, #660] ; (8001598 ) 8001304: 2203 movs r2, #3 8001306: 701a strb r2, [r3, #0] break; 8001308: e154 b.n 80015b4 if(menupos == Set_10) 800130a: 4ba3 ldr r3, [pc, #652] ; (8001598 ) 800130c: 781b ldrb r3, [r3, #0] 800130e: b2db uxtb r3, r3 8001310: 2b03 cmp r3, #3 8001312: d103 bne.n 800131c menupos = Set1; 8001314: 4ba0 ldr r3, [pc, #640] ; (8001598 ) 8001316: 2204 movs r2, #4 8001318: 701a strb r2, [r3, #0] break; 800131a: e14b b.n 80015b4 if(menupos == Set1) 800131c: 4b9e ldr r3, [pc, #632] ; (8001598 ) 800131e: 781b ldrb r3, [r3, #0] 8001320: b2db uxtb r3, r3 8001322: 2b04 cmp r3, #4 8001324: d103 bne.n 800132e menupos = Set_1; 8001326: 4b9c ldr r3, [pc, #624] ; (8001598 ) 8001328: 2205 movs r2, #5 800132a: 701a strb r2, [r3, #0] break; 800132c: e142 b.n 80015b4 if(menupos == Set_1) 800132e: 4b9a ldr r3, [pc, #616] ; (8001598 ) 8001330: 781b ldrb r3, [r3, #0] 8001332: b2db uxtb r3, r3 8001334: 2b05 cmp r3, #5 8001336: f040 813d bne.w 80015b4 menupos = Next; 800133a: 4b97 ldr r3, [pc, #604] ; (8001598 ) 800133c: 2206 movs r2, #6 800133e: 701a strb r2, [r3, #0] break; 8001340: e138 b.n 80015b4 case KEY_OK: // TODO KEY OK if(menu == MAIN) 8001342: 4b96 ldr r3, [pc, #600] ; (800159c ) 8001344: 781b ldrb r3, [r3, #0] 8001346: b2db uxtb r3, r3 8001348: 2b00 cmp r3, #0 800134a: d162 bne.n 8001412 { if(menupos != Sens) 800134c: 4b92 ldr r3, [pc, #584] ; (8001598 ) 800134e: 781b ldrb r3, [r3, #0] 8001350: b2db uxtb r3, r3 8001352: 2b03 cmp r3, #3 8001354: d047 beq.n 80013e6 { if(menupos >= Kikdt && menupos <= Kpt) 8001356: 4b90 ldr r3, [pc, #576] ; (8001598 ) 8001358: 781b ldrb r3, [r3, #0] 800135a: b2db uxtb r3, r3 800135c: 2b05 cmp r3, #5 800135e: d934 bls.n 80013ca 8001360: 4b8d ldr r3, [pc, #564] ; (8001598 ) 8001362: 781b ldrb r3, [r3, #0] 8001364: b2db uxtb r3, r3 8001366: 2b0b cmp r3, #11 8001368: d82f bhi.n 80013ca { if(menupos < Kpt) 800136a: 4b8b ldr r3, [pc, #556] ; (8001598 ) 800136c: 781b ldrb r3, [r3, #0] 800136e: b2db uxtb r3, r3 8001370: 2b0a cmp r3, #10 8001372: d80a bhi.n 800138a { focused = true; 8001374: 4b8a ldr r3, [pc, #552] ; (80015a0 ) 8001376: 2201 movs r2, #1 8001378: 701a strb r2, [r3, #0] menupos++; 800137a: 4b87 ldr r3, [pc, #540] ; (8001598 ) 800137c: 781b ldrb r3, [r3, #0] 800137e: b2db uxtb r3, r3 8001380: 3301 adds r3, #1 8001382: b2da uxtb r2, r3 8001384: 4b84 ldr r3, [pc, #528] ; (8001598 ) 8001386: 701a strb r2, [r3, #0] if(menupos < Kpt) 8001388: e100 b.n 800158c } else { focused = false; 800138a: 4b85 ldr r3, [pc, #532] ; (80015a0 ) 800138c: 2200 movs r2, #0 800138e: 701a strb r2, [r3, #0] menupos = Sens; 8001390: 4b81 ldr r3, [pc, #516] ; (8001598 ) 8001392: 2203 movs r2, #3 8001394: 701a strb r2, [r3, #0] if(WriteChannelSens(ACTIVE_CHANNEL)) 8001396: 4b83 ldr r3, [pc, #524] ; (80015a4 ) 8001398: 681b ldr r3, [r3, #0] 800139a: b2db uxtb r3, r3 800139c: 4618 mov r0, r3 800139e: f00b fe67 bl 800d070 80013a2: 4603 mov r3, r0 80013a4: 2b00 cmp r3, #0 80013a6: d009 beq.n 80013bc { memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef)); 80013a8: 4a7f ldr r2, [pc, #508] ; (80015a8 ) 80013aa: 4b80 ldr r3, [pc, #512] ; (80015ac ) 80013ac: 4610 mov r0, r2 80013ae: 4619 mov r1, r3 80013b0: f44f 7302 mov.w r3, #520 ; 0x208 80013b4: 461a mov r2, r3 80013b6: f010 ffa3 bl 8012300 if(menupos < Kpt) 80013ba: e0e7 b.n 800158c } else { WriteChannel(ACTIVE_CHANNEL); 80013bc: 4b79 ldr r3, [pc, #484] ; (80015a4 ) 80013be: 681b ldr r3, [r3, #0] 80013c0: b2db uxtb r3, r3 80013c2: 4618 mov r0, r3 80013c4: f00b fb26 bl 800ca14 if(menupos < Kpt) 80013c8: e0e0 b.n 800158c } } } else focused ^= 1; 80013ca: 4b75 ldr r3, [pc, #468] ; (80015a0 ) 80013cc: 781b ldrb r3, [r3, #0] 80013ce: b2db uxtb r3, r3 80013d0: f083 0301 eor.w r3, r3, #1 80013d4: b2db uxtb r3, r3 80013d6: 2b00 cmp r3, #0 80013d8: bf14 ite ne 80013da: 2301 movne r3, #1 80013dc: 2300 moveq r3, #0 80013de: b2da uxtb r2, r3 80013e0: 4b6f ldr r3, [pc, #444] ; (80015a0 ) 80013e2: 701a strb r2, [r3, #0] { WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100); } } } break; 80013e4: e0e8 b.n 80015b8 if(menupos == Sens) 80013e6: 4b6c ldr r3, [pc, #432] ; (8001598 ) 80013e8: 781b ldrb r3, [r3, #0] 80013ea: b2db uxtb r3, r3 80013ec: 2b03 cmp r3, #3 80013ee: f040 80e3 bne.w 80015b8 memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef)); 80013f2: 4a6e ldr r2, [pc, #440] ; (80015ac ) 80013f4: 4b6c ldr r3, [pc, #432] ; (80015a8 ) 80013f6: 4610 mov r0, r2 80013f8: 4619 mov r1, r3 80013fa: f44f 7302 mov.w r3, #520 ; 0x208 80013fe: 461a mov r2, r3 8001400: f010 ff7e bl 8012300 focused = true; 8001404: 4b66 ldr r3, [pc, #408] ; (80015a0 ) 8001406: 2201 movs r2, #1 8001408: 701a strb r2, [r3, #0] menupos = Kikdt; 800140a: 4b63 ldr r3, [pc, #396] ; (8001598 ) 800140c: 2206 movs r2, #6 800140e: 701a strb r2, [r3, #0] break; 8001410: e0d2 b.n 80015b8 if(menu == CALIBR_00) 8001412: 4b62 ldr r3, [pc, #392] ; (800159c ) 8001414: 781b ldrb r3, [r3, #0] 8001416: b2db uxtb r3, r3 8001418: 2b01 cmp r3, #1 800141a: d11d bne.n 8001458 if(menupos <= Ch4) 800141c: 4b5e ldr r3, [pc, #376] ; (8001598 ) 800141e: 781b ldrb r3, [r3, #0] 8001420: b2db uxtb r3, r3 8001422: 2b03 cmp r3, #3 8001424: d813 bhi.n 800144e ACTIVE_CHANNEL = menupos; 8001426: 4b5c ldr r3, [pc, #368] ; (8001598 ) 8001428: 781b ldrb r3, [r3, #0] 800142a: b2db uxtb r3, r3 800142c: 461a mov r2, r3 800142e: 4b5d ldr r3, [pc, #372] ; (80015a4 ) 8001430: 601a str r2, [r3, #0] menu = CALIBR_0; 8001432: 4b5a ldr r3, [pc, #360] ; (800159c ) 8001434: 2202 movs r2, #2 8001436: 701a strb r2, [r3, #0] menupos = Next; 8001438: 4b57 ldr r3, [pc, #348] ; (8001598 ) 800143a: 2206 movs r2, #6 800143c: 701a strb r2, [r3, #0] Calibr(ACTIVE_CHANNEL, 1); 800143e: 4b59 ldr r3, [pc, #356] ; (80015a4 ) 8001440: 681b ldr r3, [r3, #0] 8001442: b2db uxtb r3, r3 8001444: 2101 movs r1, #1 8001446: 4618 mov r0, r3 8001448: f00b ff56 bl 800d2f8 break; 800144c: e0b4 b.n 80015b8 CalibrOFF(); 800144e: f00c f9cd bl 800d7ec Off(); 8001452: f7ff f881 bl 8000558 break; 8001456: e0af b.n 80015b8 if(menu >= CALIBR_0 && menu <= CALIBR_22) 8001458: 4b50 ldr r3, [pc, #320] ; (800159c ) 800145a: 781b ldrb r3, [r3, #0] 800145c: b2db uxtb r3, r3 800145e: 2b01 cmp r3, #1 8001460: f240 80aa bls.w 80015b8 8001464: 4b4d ldr r3, [pc, #308] ; (800159c ) 8001466: 781b ldrb r3, [r3, #0] 8001468: b2db uxtb r3, r3 800146a: 2b18 cmp r3, #24 800146c: f200 80a4 bhi.w 80015b8 if(menupos == Next) 8001470: 4b49 ldr r3, [pc, #292] ; (8001598 ) 8001472: 781b ldrb r3, [r3, #0] 8001474: b2db uxtb r3, r3 8001476: 2b06 cmp r3, #6 8001478: d11c bne.n 80014b4 if(menu == CALIBR_22) 800147a: 4b48 ldr r3, [pc, #288] ; (800159c ) 800147c: 781b ldrb r3, [r3, #0] 800147e: b2db uxtb r3, r3 8001480: 2b18 cmp r3, #24 8001482: d108 bne.n 8001496 menu = CALIBR_00; 8001484: 4b45 ldr r3, [pc, #276] ; (800159c ) 8001486: 2201 movs r2, #1 8001488: 701a strb r2, [r3, #0] menupos = ACTIVE_CHANNEL; 800148a: 4b46 ldr r3, [pc, #280] ; (80015a4 ) 800148c: 681b ldr r3, [r3, #0] 800148e: b2da uxtb r2, r3 8001490: 4b41 ldr r3, [pc, #260] ; (8001598 ) 8001492: 701a strb r2, [r3, #0] break; 8001494: e090 b.n 80015b8 menu++; 8001496: 4b41 ldr r3, [pc, #260] ; (800159c ) 8001498: 781b ldrb r3, [r3, #0] 800149a: b2db uxtb r3, r3 800149c: 3301 adds r3, #1 800149e: b2da uxtb r2, r3 80014a0: 4b3e ldr r3, [pc, #248] ; (800159c ) 80014a2: 701a strb r2, [r3, #0] Calibr(ACTIVE_CHANNEL, 1); 80014a4: 4b3f ldr r3, [pc, #252] ; (80015a4 ) 80014a6: 681b ldr r3, [r3, #0] 80014a8: b2db uxtb r3, r3 80014aa: 2101 movs r1, #1 80014ac: 4618 mov r0, r3 80014ae: f00b ff23 bl 800d2f8 break; 80014b2: e081 b.n 80015b8 if(menupos == Set_1) 80014b4: 4b38 ldr r3, [pc, #224] ; (8001598 ) 80014b6: 781b ldrb r3, [r3, #0] 80014b8: b2db uxtb r3, r3 80014ba: 2b05 cmp r3, #5 80014bc: d10c bne.n 80014d8 WriteCorr(ACTIVE_CHANNEL, (menu - 2), (0x01 | 0x80)); 80014be: 4b39 ldr r3, [pc, #228] ; (80015a4 ) 80014c0: 681b ldr r3, [r3, #0] 80014c2: b2d8 uxtb r0, r3 80014c4: 4b35 ldr r3, [pc, #212] ; (800159c ) 80014c6: 781b ldrb r3, [r3, #0] 80014c8: b2db uxtb r3, r3 80014ca: 3b02 subs r3, #2 80014cc: b2db uxtb r3, r3 80014ce: 2281 movs r2, #129 ; 0x81 80014d0: 4619 mov r1, r3 80014d2: f00c f853 bl 800d57c break; 80014d6: e06f b.n 80015b8 if(menupos == Set1) 80014d8: 4b2f ldr r3, [pc, #188] ; (8001598 ) 80014da: 781b ldrb r3, [r3, #0] 80014dc: b2db uxtb r3, r3 80014de: 2b04 cmp r3, #4 80014e0: d10c bne.n 80014fc WriteCorr(ACTIVE_CHANNEL, (menu - 2), 0x01); 80014e2: 4b30 ldr r3, [pc, #192] ; (80015a4 ) 80014e4: 681b ldr r3, [r3, #0] 80014e6: b2d8 uxtb r0, r3 80014e8: 4b2c ldr r3, [pc, #176] ; (800159c ) 80014ea: 781b ldrb r3, [r3, #0] 80014ec: b2db uxtb r3, r3 80014ee: 3b02 subs r3, #2 80014f0: b2db uxtb r3, r3 80014f2: 2201 movs r2, #1 80014f4: 4619 mov r1, r3 80014f6: f00c f841 bl 800d57c break; 80014fa: e05d b.n 80015b8 if(menupos == Set_10) 80014fc: 4b26 ldr r3, [pc, #152] ; (8001598 ) 80014fe: 781b ldrb r3, [r3, #0] 8001500: b2db uxtb r3, r3 8001502: 2b03 cmp r3, #3 8001504: d10c bne.n 8001520 WriteCorr(ACTIVE_CHANNEL, (menu - 2), (10 | 0x80)); 8001506: 4b27 ldr r3, [pc, #156] ; (80015a4 ) 8001508: 681b ldr r3, [r3, #0] 800150a: b2d8 uxtb r0, r3 800150c: 4b23 ldr r3, [pc, #140] ; (800159c ) 800150e: 781b ldrb r3, [r3, #0] 8001510: b2db uxtb r3, r3 8001512: 3b02 subs r3, #2 8001514: b2db uxtb r3, r3 8001516: 228a movs r2, #138 ; 0x8a 8001518: 4619 mov r1, r3 800151a: f00c f82f bl 800d57c break; 800151e: e04b b.n 80015b8 if(menupos == Set10) 8001520: 4b1d ldr r3, [pc, #116] ; (8001598 ) 8001522: 781b ldrb r3, [r3, #0] 8001524: b2db uxtb r3, r3 8001526: 2b02 cmp r3, #2 8001528: d10c bne.n 8001544 WriteCorr(ACTIVE_CHANNEL, (menu - 2), 10); 800152a: 4b1e ldr r3, [pc, #120] ; (80015a4 ) 800152c: 681b ldr r3, [r3, #0] 800152e: b2d8 uxtb r0, r3 8001530: 4b1a ldr r3, [pc, #104] ; (800159c ) 8001532: 781b ldrb r3, [r3, #0] 8001534: b2db uxtb r3, r3 8001536: 3b02 subs r3, #2 8001538: b2db uxtb r3, r3 800153a: 220a movs r2, #10 800153c: 4619 mov r1, r3 800153e: f00c f81d bl 800d57c break; 8001542: e039 b.n 80015b8 if(menupos == Set_100) 8001544: 4b14 ldr r3, [pc, #80] ; (8001598 ) 8001546: 781b ldrb r3, [r3, #0] 8001548: b2db uxtb r3, r3 800154a: 2b01 cmp r3, #1 800154c: d10c bne.n 8001568 WriteCorr(ACTIVE_CHANNEL, (menu - 2), (100 | 0x80)); 800154e: 4b15 ldr r3, [pc, #84] ; (80015a4 ) 8001550: 681b ldr r3, [r3, #0] 8001552: b2d8 uxtb r0, r3 8001554: 4b11 ldr r3, [pc, #68] ; (800159c ) 8001556: 781b ldrb r3, [r3, #0] 8001558: b2db uxtb r3, r3 800155a: 3b02 subs r3, #2 800155c: b2db uxtb r3, r3 800155e: 22e4 movs r2, #228 ; 0xe4 8001560: 4619 mov r1, r3 8001562: f00c f80b bl 800d57c break; 8001566: e027 b.n 80015b8 if(menupos == Set100) 8001568: 4b0b ldr r3, [pc, #44] ; (8001598 ) 800156a: 781b ldrb r3, [r3, #0] 800156c: b2db uxtb r3, r3 800156e: 2b00 cmp r3, #0 8001570: d122 bne.n 80015b8 WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100); 8001572: 4b0c ldr r3, [pc, #48] ; (80015a4 ) 8001574: 681b ldr r3, [r3, #0] 8001576: b2d8 uxtb r0, r3 8001578: 4b08 ldr r3, [pc, #32] ; (800159c ) 800157a: 781b ldrb r3, [r3, #0] 800157c: b2db uxtb r3, r3 800157e: 3b02 subs r3, #2 8001580: b2db uxtb r3, r3 8001582: 2264 movs r2, #100 ; 0x64 8001584: 4619 mov r1, r3 8001586: f00b fff9 bl 800d57c break; 800158a: e015 b.n 80015b8 800158c: e014 b.n 80015b8 case KEY_PW: Off(); 800158e: f7fe ffe3 bl 8000558 break; 8001592: bf00 nop 8001594: e011 b.n 80015ba 8001596: bf00 nop 8001598: 20020010 .word 0x20020010 800159c: 20020245 .word 0x20020245 80015a0: 20020250 .word 0x20020250 80015a4: 2006b2d0 .word 0x2006b2d0 80015a8: 2006b510 .word 0x2006b510 80015ac: 2006b784 .word 0x2006b784 break; 80015b0: bf00 nop 80015b2: e002 b.n 80015ba break; 80015b4: bf00 nop 80015b6: e000 b.n 80015ba break; 80015b8: bf00 nop } } } 80015ba: 3778 adds r7, #120 ; 0x78 80015bc: 46bd mov sp, r7 80015be: bd80 pop {r7, pc} 080015c0 : void DoKeyUP(void) { 80015c0: b580 push {r7, lr} 80015c2: b088 sub sp, #32 80015c4: af00 add r7, sp, #0 uint32_t s, ikdt, ikt, iks, ikd, ike, ipt; if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 80015c6: 4b5f ldr r3, [pc, #380] ; (8001744 ) 80015c8: 681b ldr r3, [r3, #0] 80015ca: 4a5f ldr r2, [pc, #380] ; (8001748 ) 80015cc: 015b lsls r3, r3, #5 80015ce: 4413 add r3, r2 80015d0: 3318 adds r3, #24 80015d2: edd3 7a00 vldr s15, [r3] 80015d6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80015da: eef4 7ac7 vcmpe.f32 s15, s14 80015de: eef1 fa10 vmrs APSR_nzcv, fpscr 80015e2: d517 bpl.n 8001614 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 80015e4: 4b57 ldr r3, [pc, #348] ; (8001744 ) 80015e6: 681b ldr r3, [r3, #0] 80015e8: 4a57 ldr r2, [pc, #348] ; (8001748 ) 80015ea: 015b lsls r3, r3, #5 80015ec: 4413 add r3, r2 80015ee: 3318 adds r3, #24 80015f0: edd3 7a00 vldr s15, [r3] 80015f4: ed9f 7a55 vldr s14, [pc, #340] ; 800174c 80015f8: ee67 7a87 vmul.f32 s15, s15, s14 80015fc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8001600: ee77 7a87 vadd.f32 s15, s15, s14 8001604: eefc 7ae7 vcvt.u32.f32 s15, s15 8001608: ee17 3a90 vmov r3, s15 800160c: 61fb str r3, [r7, #28] ipt = 4; 800160e: 2304 movs r3, #4 8001610: 607b str r3, [r7, #4] 8001612: e0be b.n 8001792 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 8001614: 4b4b ldr r3, [pc, #300] ; (8001744 ) 8001616: 681b ldr r3, [r3, #0] 8001618: 4a4b ldr r2, [pc, #300] ; (8001748 ) 800161a: 015b lsls r3, r3, #5 800161c: 4413 add r3, r2 800161e: 3318 adds r3, #24 8001620: edd3 7a00 vldr s15, [r3] 8001624: ed9f 7a4a vldr s14, [pc, #296] ; 8001750 8001628: eef4 7ac7 vcmpe.f32 s15, s14 800162c: eef1 fa10 vmrs APSR_nzcv, fpscr 8001630: d517 bpl.n 8001662 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 8001632: 4b44 ldr r3, [pc, #272] ; (8001744 ) 8001634: 681b ldr r3, [r3, #0] 8001636: 4a44 ldr r2, [pc, #272] ; (8001748 ) 8001638: 015b lsls r3, r3, #5 800163a: 4413 add r3, r2 800163c: 3318 adds r3, #24 800163e: edd3 7a00 vldr s15, [r3] 8001642: ed9f 7a44 vldr s14, [pc, #272] ; 8001754 8001646: ee67 7a87 vmul.f32 s15, s15, s14 800164a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800164e: ee77 7a87 vadd.f32 s15, s15, s14 8001652: eefc 7ae7 vcvt.u32.f32 s15, s15 8001656: ee17 3a90 vmov r3, s15 800165a: 61fb str r3, [r7, #28] ipt = 3; 800165c: 2303 movs r3, #3 800165e: 607b str r3, [r7, #4] 8001660: e097 b.n 8001792 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 8001662: 4b38 ldr r3, [pc, #224] ; (8001744 ) 8001664: 681b ldr r3, [r3, #0] 8001666: 4a38 ldr r2, [pc, #224] ; (8001748 ) 8001668: 015b lsls r3, r3, #5 800166a: 4413 add r3, r2 800166c: 3318 adds r3, #24 800166e: edd3 7a00 vldr s15, [r3] 8001672: ed9f 7a38 vldr s14, [pc, #224] ; 8001754 8001676: eef4 7ac7 vcmpe.f32 s15, s14 800167a: eef1 fa10 vmrs APSR_nzcv, fpscr 800167e: d517 bpl.n 80016b0 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 8001680: 4b30 ldr r3, [pc, #192] ; (8001744 ) 8001682: 681b ldr r3, [r3, #0] 8001684: 4a30 ldr r2, [pc, #192] ; (8001748 ) 8001686: 015b lsls r3, r3, #5 8001688: 4413 add r3, r2 800168a: 3318 adds r3, #24 800168c: edd3 7a00 vldr s15, [r3] 8001690: ed9f 7a2f vldr s14, [pc, #188] ; 8001750 8001694: ee67 7a87 vmul.f32 s15, s15, s14 8001698: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 800169c: ee77 7a87 vadd.f32 s15, s15, s14 80016a0: eefc 7ae7 vcvt.u32.f32 s15, s15 80016a4: ee17 3a90 vmov r3, s15 80016a8: 61fb str r3, [r7, #28] ipt = 2; 80016aa: 2302 movs r3, #2 80016ac: 607b str r3, [r7, #4] 80016ae: e070 b.n 8001792 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 80016b0: 4b24 ldr r3, [pc, #144] ; (8001744 ) 80016b2: 681b ldr r3, [r3, #0] 80016b4: 4a24 ldr r2, [pc, #144] ; (8001748 ) 80016b6: 015b lsls r3, r3, #5 80016b8: 4413 add r3, r2 80016ba: 3318 adds r3, #24 80016bc: edd3 7a00 vldr s15, [r3] 80016c0: ed9f 7a22 vldr s14, [pc, #136] ; 800174c 80016c4: eef4 7ac7 vcmpe.f32 s15, s14 80016c8: eef1 fa10 vmrs APSR_nzcv, fpscr 80016cc: d517 bpl.n 80016fe s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 80016ce: 4b1d ldr r3, [pc, #116] ; (8001744 ) 80016d0: 681b ldr r3, [r3, #0] 80016d2: 4a1d ldr r2, [pc, #116] ; (8001748 ) 80016d4: 015b lsls r3, r3, #5 80016d6: 4413 add r3, r2 80016d8: 3318 adds r3, #24 80016da: edd3 7a00 vldr s15, [r3] 80016de: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80016e2: ee67 7a87 vmul.f32 s15, s15, s14 80016e6: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80016ea: ee77 7a87 vadd.f32 s15, s15, s14 80016ee: eefc 7ae7 vcvt.u32.f32 s15, s15 80016f2: ee17 3a90 vmov r3, s15 80016f6: 61fb str r3, [r7, #28] ipt = 1; 80016f8: 2301 movs r3, #1 80016fa: 607b str r3, [r7, #4] 80016fc: e049 b.n 8001792 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 80016fe: 4b11 ldr r3, [pc, #68] ; (8001744 ) 8001700: 681b ldr r3, [r3, #0] 8001702: 4a11 ldr r2, [pc, #68] ; (8001748 ) 8001704: 015b lsls r3, r3, #5 8001706: 4413 add r3, r2 8001708: 3318 adds r3, #24 800170a: edd3 7a00 vldr s15, [r3] 800170e: ed9f 7a12 vldr s14, [pc, #72] ; 8001758 8001712: eef4 7ac7 vcmpe.f32 s15, s14 8001716: eef1 fa10 vmrs APSR_nzcv, fpscr 800171a: d51f bpl.n 800175c s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 800171c: 4b09 ldr r3, [pc, #36] ; (8001744 ) 800171e: 681b ldr r3, [r3, #0] 8001720: 4a09 ldr r2, [pc, #36] ; (8001748 ) 8001722: 015b lsls r3, r3, #5 8001724: 4413 add r3, r2 8001726: 3318 adds r3, #24 8001728: edd3 7a00 vldr s15, [r3] 800172c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8001730: ee77 7a87 vadd.f32 s15, s15, s14 8001734: eefc 7ae7 vcvt.u32.f32 s15, s15 8001738: ee17 3a90 vmov r3, s15 800173c: 61fb str r3, [r7, #28] ipt = 0; 800173e: 2300 movs r3, #0 8001740: 607b str r3, [r7, #4] 8001742: e026 b.n 8001792 8001744: 2006b2d0 .word 0x2006b2d0 8001748: 2006b510 .word 0x2006b510 800174c: 461c4000 .word 0x461c4000 8001750: 42c80000 .word 0x42c80000 8001754: 447a0000 .word 0x447a0000 8001758: 47c35000 .word 0x47c35000 } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800175c: 4bb4 ldr r3, [pc, #720] ; (8001a30 ) 800175e: 681b ldr r3, [r3, #0] 8001760: 4ab4 ldr r2, [pc, #720] ; (8001a34 ) 8001762: 015b lsls r3, r3, #5 8001764: 4413 add r3, r2 8001766: 3318 adds r3, #24 8001768: edd3 7a00 vldr s15, [r3] 800176c: ed9f 7ab2 vldr s14, [pc, #712] ; 8001a38 8001770: eef4 7ac7 vcmpe.f32 s15, s14 8001774: eef1 fa10 vmrs APSR_nzcv, fpscr 8001778: db0b blt.n 8001792 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800177a: 4bad ldr r3, [pc, #692] ; (8001a30 ) 800177c: 681b ldr r3, [r3, #0] 800177e: 4aad ldr r2, [pc, #692] ; (8001a34 ) 8001780: 015b lsls r3, r3, #5 8001782: 4413 add r3, r2 8001784: 3318 adds r3, #24 8001786: 4aad ldr r2, [pc, #692] ; (8001a3c ) 8001788: 601a str r2, [r3, #0] s = 99999; 800178a: 4bad ldr r3, [pc, #692] ; (8001a40 ) 800178c: 61fb str r3, [r7, #28] ipt = 0; 800178e: 2300 movs r3, #0 8001790: 607b str r3, [r7, #4] } ikdt = (s / 10000); 8001792: 69fb ldr r3, [r7, #28] 8001794: 4aab ldr r2, [pc, #684] ; (8001a44 ) 8001796: fba2 2303 umull r2, r3, r2, r3 800179a: 0b5b lsrs r3, r3, #13 800179c: 61bb str r3, [r7, #24] ikt = (s % 10000 / 1000); 800179e: 69fa ldr r2, [r7, #28] 80017a0: 4ba8 ldr r3, [pc, #672] ; (8001a44 ) 80017a2: fba3 1302 umull r1, r3, r3, r2 80017a6: 0b5b lsrs r3, r3, #13 80017a8: f242 7110 movw r1, #10000 ; 0x2710 80017ac: fb01 f303 mul.w r3, r1, r3 80017b0: 1ad3 subs r3, r2, r3 80017b2: 4aa5 ldr r2, [pc, #660] ; (8001a48 ) 80017b4: fba2 2303 umull r2, r3, r2, r3 80017b8: 099b lsrs r3, r3, #6 80017ba: 617b str r3, [r7, #20] iks = (s % 10000 % 1000 / 100); 80017bc: 69fa ldr r2, [r7, #28] 80017be: 4ba1 ldr r3, [pc, #644] ; (8001a44 ) 80017c0: fba3 1302 umull r1, r3, r3, r2 80017c4: 0b5b lsrs r3, r3, #13 80017c6: f242 7110 movw r1, #10000 ; 0x2710 80017ca: fb01 f303 mul.w r3, r1, r3 80017ce: 1ad3 subs r3, r2, r3 80017d0: 4a9d ldr r2, [pc, #628] ; (8001a48 ) 80017d2: fba2 1203 umull r1, r2, r2, r3 80017d6: 0992 lsrs r2, r2, #6 80017d8: f44f 717a mov.w r1, #1000 ; 0x3e8 80017dc: fb01 f202 mul.w r2, r1, r2 80017e0: 1a9a subs r2, r3, r2 80017e2: 4b9a ldr r3, [pc, #616] ; (8001a4c ) 80017e4: fba3 2302 umull r2, r3, r3, r2 80017e8: 095b lsrs r3, r3, #5 80017ea: 613b str r3, [r7, #16] ikd = (s % 10000 % 1000 % 100 / 10); 80017ec: 69fb ldr r3, [r7, #28] 80017ee: 4a95 ldr r2, [pc, #596] ; (8001a44 ) 80017f0: fba2 1203 umull r1, r2, r2, r3 80017f4: 0b52 lsrs r2, r2, #13 80017f6: f242 7110 movw r1, #10000 ; 0x2710 80017fa: fb01 f202 mul.w r2, r1, r2 80017fe: 1a9a subs r2, r3, r2 8001800: 4b91 ldr r3, [pc, #580] ; (8001a48 ) 8001802: fba3 1302 umull r1, r3, r3, r2 8001806: 099b lsrs r3, r3, #6 8001808: f44f 717a mov.w r1, #1000 ; 0x3e8 800180c: fb01 f303 mul.w r3, r1, r3 8001810: 1ad3 subs r3, r2, r3 8001812: 4a8e ldr r2, [pc, #568] ; (8001a4c ) 8001814: fba2 1203 umull r1, r2, r2, r3 8001818: 0952 lsrs r2, r2, #5 800181a: 2164 movs r1, #100 ; 0x64 800181c: fb01 f202 mul.w r2, r1, r2 8001820: 1a9a subs r2, r3, r2 8001822: 4b8b ldr r3, [pc, #556] ; (8001a50 ) 8001824: fba3 2302 umull r2, r3, r3, r2 8001828: 08db lsrs r3, r3, #3 800182a: 60fb str r3, [r7, #12] ike = (s % 10000 % 1000 % 100 % 10); 800182c: 69fb ldr r3, [r7, #28] 800182e: 4a85 ldr r2, [pc, #532] ; (8001a44 ) 8001830: fba2 1203 umull r1, r2, r2, r3 8001834: 0b52 lsrs r2, r2, #13 8001836: f242 7110 movw r1, #10000 ; 0x2710 800183a: fb01 f202 mul.w r2, r1, r2 800183e: 1a9a subs r2, r3, r2 8001840: 4b81 ldr r3, [pc, #516] ; (8001a48 ) 8001842: fba3 1302 umull r1, r3, r3, r2 8001846: 099b lsrs r3, r3, #6 8001848: f44f 717a mov.w r1, #1000 ; 0x3e8 800184c: fb01 f303 mul.w r3, r1, r3 8001850: 1ad3 subs r3, r2, r3 8001852: 4a7e ldr r2, [pc, #504] ; (8001a4c ) 8001854: fba2 1203 umull r1, r2, r2, r3 8001858: 0952 lsrs r2, r2, #5 800185a: 2164 movs r1, #100 ; 0x64 800185c: fb01 f202 mul.w r2, r1, r2 8001860: 1a9a subs r2, r3, r2 8001862: 4b7b ldr r3, [pc, #492] ; (8001a50 ) 8001864: fba3 1302 umull r1, r3, r3, r2 8001868: 08d9 lsrs r1, r3, #3 800186a: 460b mov r3, r1 800186c: 009b lsls r3, r3, #2 800186e: 440b add r3, r1 8001870: 005b lsls r3, r3, #1 8001872: 1ad3 subs r3, r2, r3 8001874: 60bb str r3, [r7, #8] if(menupos == Hp) 8001876: 4b77 ldr r3, [pc, #476] ; (8001a54 ) 8001878: 781b ldrb r3, [r3, #0] 800187a: b2db uxtb r3, r3 800187c: 2b01 cmp r3, #1 800187e: d140 bne.n 8001902 { if(focused) 8001880: 4b75 ldr r3, [pc, #468] ; (8001a58 ) 8001882: 781b ldrb r3, [r3, #0] 8001884: b2db uxtb r3, r3 8001886: 2b00 cmp r3, #0 8001888: d036 beq.n 80018f8 { if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10) 800188a: 4b69 ldr r3, [pc, #420] ; (8001a30 ) 800188c: 681b ldr r3, [r3, #0] 800188e: 4a69 ldr r2, [pc, #420] ; (8001a34 ) 8001890: 015b lsls r3, r3, #5 8001892: 4413 add r3, r2 8001894: 3302 adds r3, #2 8001896: 881b ldrh r3, [r3, #0] 8001898: b29b uxth r3, r3 800189a: 2b03 cmp r3, #3 800189c: f201 8188 bhi.w 8002bb0 { pardata.amplif[ACTIVE_CHANNEL].IFV++; 80018a0: 4b63 ldr r3, [pc, #396] ; (8001a30 ) 80018a2: 681b ldr r3, [r3, #0] 80018a4: 4963 ldr r1, [pc, #396] ; (8001a34 ) 80018a6: 015a lsls r2, r3, #5 80018a8: 440a add r2, r1 80018aa: 3202 adds r2, #2 80018ac: 8812 ldrh r2, [r2, #0] 80018ae: b292 uxth r2, r2 80018b0: 3201 adds r2, #1 80018b2: b291 uxth r1, r2 80018b4: 4a5f ldr r2, [pc, #380] ; (8001a34 ) 80018b6: 015b lsls r3, r3, #5 80018b8: 4413 add r3, r2 80018ba: 3302 adds r3, #2 80018bc: 460a mov r2, r1 80018be: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80018c0: 4b5b ldr r3, [pc, #364] ; (8001a30 ) 80018c2: 681b ldr r3, [r3, #0] 80018c4: b2db uxtb r3, r3 80018c6: 4618 mov r0, r3 80018c8: f00b f8a4 bl 800ca14 80018cc: 4603 mov r3, r0 80018ce: 2b00 cmp r3, #0 80018d0: f001 816e beq.w 8002bb0 { pardata.amplif[ACTIVE_CHANNEL].IFV--; 80018d4: 4b56 ldr r3, [pc, #344] ; (8001a30 ) 80018d6: 681b ldr r3, [r3, #0] 80018d8: 4956 ldr r1, [pc, #344] ; (8001a34 ) 80018da: 015a lsls r2, r3, #5 80018dc: 440a add r2, r1 80018de: 3202 adds r2, #2 80018e0: 8812 ldrh r2, [r2, #0] 80018e2: b292 uxth r2, r2 80018e4: 3a01 subs r2, #1 80018e6: b291 uxth r1, r2 80018e8: 4a52 ldr r2, [pc, #328] ; (8001a34 ) 80018ea: 015b lsls r3, r3, #5 80018ec: 4413 add r3, r2 80018ee: 3302 adds r3, #2 80018f0: 460a mov r2, r1 80018f2: 801a strh r2, [r3, #0] pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); } } 80018f4: f001 b95c b.w 8002bb0 menupos = Input; 80018f8: 4b56 ldr r3, [pc, #344] ; (8001a54 ) 80018fa: 2200 movs r2, #0 80018fc: 701a strb r2, [r3, #0] } 80018fe: f001 b957 b.w 8002bb0 if(menupos == Lp) 8001902: 4b54 ldr r3, [pc, #336] ; (8001a54 ) 8001904: 781b ldrb r3, [r3, #0] 8001906: b2db uxtb r3, r3 8001908: 2b02 cmp r3, #2 800190a: d140 bne.n 800198e if(focused) 800190c: 4b52 ldr r3, [pc, #328] ; (8001a58 ) 800190e: 781b ldrb r3, [r3, #0] 8001910: b2db uxtb r3, r3 8001912: 2b00 cmp r3, #0 8001914: d036 beq.n 8001984 if(pardata.amplif[ACTIVE_CHANNEL].IFN < Lp100000) 8001916: 4b46 ldr r3, [pc, #280] ; (8001a30 ) 8001918: 681b ldr r3, [r3, #0] 800191a: 4a46 ldr r2, [pc, #280] ; (8001a34 ) 800191c: 015b lsls r3, r3, #5 800191e: 4413 add r3, r2 8001920: 3304 adds r3, #4 8001922: 881b ldrh r3, [r3, #0] 8001924: b29b uxth r3, r3 8001926: 2b06 cmp r3, #6 8001928: f201 8142 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IFN++; 800192c: 4b40 ldr r3, [pc, #256] ; (8001a30 ) 800192e: 681b ldr r3, [r3, #0] 8001930: 4940 ldr r1, [pc, #256] ; (8001a34 ) 8001932: 015a lsls r2, r3, #5 8001934: 440a add r2, r1 8001936: 3204 adds r2, #4 8001938: 8812 ldrh r2, [r2, #0] 800193a: b292 uxth r2, r2 800193c: 3201 adds r2, #1 800193e: b291 uxth r1, r2 8001940: 4a3c ldr r2, [pc, #240] ; (8001a34 ) 8001942: 015b lsls r3, r3, #5 8001944: 4413 add r3, r2 8001946: 3304 adds r3, #4 8001948: 460a mov r2, r1 800194a: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 800194c: 4b38 ldr r3, [pc, #224] ; (8001a30 ) 800194e: 681b ldr r3, [r3, #0] 8001950: b2db uxtb r3, r3 8001952: 4618 mov r0, r3 8001954: f00b f85e bl 800ca14 8001958: 4603 mov r3, r0 800195a: 2b00 cmp r3, #0 800195c: f001 8128 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IFN--; 8001960: 4b33 ldr r3, [pc, #204] ; (8001a30 ) 8001962: 681b ldr r3, [r3, #0] 8001964: 4933 ldr r1, [pc, #204] ; (8001a34 ) 8001966: 015a lsls r2, r3, #5 8001968: 440a add r2, r1 800196a: 3204 adds r2, #4 800196c: 8812 ldrh r2, [r2, #0] 800196e: b292 uxth r2, r2 8001970: 3a01 subs r2, #1 8001972: b291 uxth r1, r2 8001974: 4a2f ldr r2, [pc, #188] ; (8001a34 ) 8001976: 015b lsls r3, r3, #5 8001978: 4413 add r3, r2 800197a: 3304 adds r3, #4 800197c: 460a mov r2, r1 800197e: 801a strh r2, [r3, #0] } 8001980: f001 b916 b.w 8002bb0 menupos = Hp; 8001984: 4b33 ldr r3, [pc, #204] ; (8001a54 ) 8001986: 2201 movs r2, #1 8001988: 701a strb r2, [r3, #0] } 800198a: f001 b911 b.w 8002bb0 if(menupos == Sens) 800198e: 4b31 ldr r3, [pc, #196] ; (8001a54 ) 8001990: 781b ldrb r3, [r3, #0] 8001992: b2db uxtb r3, r3 8001994: 2b03 cmp r3, #3 8001996: d104 bne.n 80019a2 menupos = Lp; 8001998: 4b2e ldr r3, [pc, #184] ; (8001a54 ) 800199a: 2202 movs r2, #2 800199c: 701a strb r2, [r3, #0] } 800199e: f001 b907 b.w 8002bb0 if(menupos == Val) 80019a2: 4b2c ldr r3, [pc, #176] ; (8001a54 ) 80019a4: 781b ldrb r3, [r3, #0] 80019a6: b2db uxtb r3, r3 80019a8: 2b04 cmp r3, #4 80019aa: d157 bne.n 8001a5c if(focused) 80019ac: 4b2a ldr r3, [pc, #168] ; (8001a58 ) 80019ae: 781b ldrb r3, [r3, #0] 80019b0: b2db uxtb r3, r3 80019b2: 2b00 cmp r3, #0 80019b4: d036 beq.n 8001a24 if(pardata.amplif[ACTIVE_CHANNEL].VAL < Nython) 80019b6: 4b1e ldr r3, [pc, #120] ; (8001a30 ) 80019b8: 681b ldr r3, [r3, #0] 80019ba: 4a1e ldr r2, [pc, #120] ; (8001a34 ) 80019bc: 015b lsls r3, r3, #5 80019be: 4413 add r3, r2 80019c0: 3312 adds r3, #18 80019c2: 881b ldrh r3, [r3, #0] 80019c4: b29b uxth r3, r3 80019c6: 2b01 cmp r3, #1 80019c8: f201 80f2 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].VAL++; 80019cc: 4b18 ldr r3, [pc, #96] ; (8001a30 ) 80019ce: 681b ldr r3, [r3, #0] 80019d0: 4918 ldr r1, [pc, #96] ; (8001a34 ) 80019d2: 015a lsls r2, r3, #5 80019d4: 440a add r2, r1 80019d6: 3212 adds r2, #18 80019d8: 8812 ldrh r2, [r2, #0] 80019da: b292 uxth r2, r2 80019dc: 3201 adds r2, #1 80019de: b291 uxth r1, r2 80019e0: 4a14 ldr r2, [pc, #80] ; (8001a34 ) 80019e2: 015b lsls r3, r3, #5 80019e4: 4413 add r3, r2 80019e6: 3312 adds r3, #18 80019e8: 460a mov r2, r1 80019ea: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80019ec: 4b10 ldr r3, [pc, #64] ; (8001a30 ) 80019ee: 681b ldr r3, [r3, #0] 80019f0: b2db uxtb r3, r3 80019f2: 4618 mov r0, r3 80019f4: f00b f80e bl 800ca14 80019f8: 4603 mov r3, r0 80019fa: 2b00 cmp r3, #0 80019fc: f001 80d8 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].VAL--; 8001a00: 4b0b ldr r3, [pc, #44] ; (8001a30 ) 8001a02: 681b ldr r3, [r3, #0] 8001a04: 490b ldr r1, [pc, #44] ; (8001a34 ) 8001a06: 015a lsls r2, r3, #5 8001a08: 440a add r2, r1 8001a0a: 3212 adds r2, #18 8001a0c: 8812 ldrh r2, [r2, #0] 8001a0e: b292 uxth r2, r2 8001a10: 3a01 subs r2, #1 8001a12: b291 uxth r1, r2 8001a14: 4a07 ldr r2, [pc, #28] ; (8001a34 ) 8001a16: 015b lsls r3, r3, #5 8001a18: 4413 add r3, r2 8001a1a: 3312 adds r3, #18 8001a1c: 460a mov r2, r1 8001a1e: 801a strh r2, [r3, #0] } 8001a20: f001 b8c6 b.w 8002bb0 menupos = Sens; 8001a24: 4b0b ldr r3, [pc, #44] ; (8001a54 ) 8001a26: 2203 movs r2, #3 8001a28: 701a strb r2, [r3, #0] } 8001a2a: f001 b8c1 b.w 8002bb0 8001a2e: bf00 nop 8001a30: 2006b2d0 .word 0x2006b2d0 8001a34: 2006b510 .word 0x2006b510 8001a38: 47c35000 .word 0x47c35000 8001a3c: 47c34f80 .word 0x47c34f80 8001a40: 0001869f .word 0x0001869f 8001a44: d1b71759 .word 0xd1b71759 8001a48: 10624dd3 .word 0x10624dd3 8001a4c: 51eb851f .word 0x51eb851f 8001a50: cccccccd .word 0xcccccccd 8001a54: 20020010 .word 0x20020010 8001a58: 20020250 .word 0x20020250 if(menupos == Out) 8001a5c: 4bb4 ldr r3, [pc, #720] ; (8001d30 ) 8001a5e: 781b ldrb r3, [r3, #0] 8001a60: b2db uxtb r3, r3 8001a62: 2b05 cmp r3, #5 8001a64: f040 83d6 bne.w 8002214 if(focused) 8001a68: 4bb2 ldr r3, [pc, #712] ; (8001d34 ) 8001a6a: 781b ldrb r3, [r3, #0] 8001a6c: b2db uxtb r3, r3 8001a6e: 2b00 cmp r3, #0 8001a70: f000 83cb beq.w 800220a if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0010f) //0.001 8001a74: 4bb0 ldr r3, [pc, #704] ; (8001d38 ) 8001a76: 681b ldr r3, [r3, #0] 8001a78: 4ab0 ldr r2, [pc, #704] ; (8001d3c ) 8001a7a: 015b lsls r3, r3, #5 8001a7c: 4413 add r3, r2 8001a7e: 3318 adds r3, #24 8001a80: edd3 7a00 vldr s15, [r3] 8001a84: ed9f 7aae vldr s14, [pc, #696] ; 8001d40 8001a88: eef4 7ac7 vcmpe.f32 s15, s14 8001a8c: eef1 fa10 vmrs APSR_nzcv, fpscr 8001a90: d836 bhi.n 8001b00 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000) 8001a92: 4ba9 ldr r3, [pc, #676] ; (8001d38 ) 8001a94: 681b ldr r3, [r3, #0] 8001a96: 4aa9 ldr r2, [pc, #676] ; (8001d3c ) 8001a98: 015b lsls r3, r3, #5 8001a9a: 4413 add r3, r2 8001a9c: 3306 adds r3, #6 8001a9e: 881b ldrh r3, [r3, #0] 8001aa0: b29b uxth r3, r3 8001aa2: 2b0b cmp r3, #11 8001aa4: f201 8084 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001aa8: 4ba3 ldr r3, [pc, #652] ; (8001d38 ) 8001aaa: 681b ldr r3, [r3, #0] 8001aac: 49a3 ldr r1, [pc, #652] ; (8001d3c ) 8001aae: 015a lsls r2, r3, #5 8001ab0: 440a add r2, r1 8001ab2: 3206 adds r2, #6 8001ab4: 8812 ldrh r2, [r2, #0] 8001ab6: b292 uxth r2, r2 8001ab8: 3201 adds r2, #1 8001aba: b291 uxth r1, r2 8001abc: 4a9f ldr r2, [pc, #636] ; (8001d3c ) 8001abe: 015b lsls r3, r3, #5 8001ac0: 4413 add r3, r2 8001ac2: 3306 adds r3, #6 8001ac4: 460a mov r2, r1 8001ac6: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001ac8: 4b9b ldr r3, [pc, #620] ; (8001d38 ) 8001aca: 681b ldr r3, [r3, #0] 8001acc: b2db uxtb r3, r3 8001ace: 4618 mov r0, r3 8001ad0: f00a ffa0 bl 800ca14 8001ad4: 4603 mov r3, r0 8001ad6: 2b00 cmp r3, #0 8001ad8: f001 806a beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001adc: 4b96 ldr r3, [pc, #600] ; (8001d38 ) 8001ade: 681b ldr r3, [r3, #0] 8001ae0: 4996 ldr r1, [pc, #600] ; (8001d3c ) 8001ae2: 015a lsls r2, r3, #5 8001ae4: 440a add r2, r1 8001ae6: 3206 adds r2, #6 8001ae8: 8812 ldrh r2, [r2, #0] 8001aea: b292 uxth r2, r2 8001aec: 3a01 subs r2, #1 8001aee: b291 uxth r1, r2 8001af0: 4a92 ldr r2, [pc, #584] ; (8001d3c ) 8001af2: 015b lsls r3, r3, #5 8001af4: 4413 add r3, r2 8001af6: 3306 adds r3, #6 8001af8: 460a mov r2, r1 8001afa: 801a strh r2, [r3, #0] } 8001afc: f001 b858 b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 0.0011f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 10.000f) //0.002 8001b00: 4b8d ldr r3, [pc, #564] ; (8001d38 ) 8001b02: 681b ldr r3, [r3, #0] 8001b04: 4a8d ldr r2, [pc, #564] ; (8001d3c ) 8001b06: 015b lsls r3, r3, #5 8001b08: 4413 add r3, r2 8001b0a: 3318 adds r3, #24 8001b0c: edd3 7a00 vldr s15, [r3] 8001b10: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8001b14: eef4 7ac7 vcmpe.f32 s15, s14 8001b18: eef1 fa10 vmrs APSR_nzcv, fpscr 8001b1c: d836 bhi.n 8001b8c if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000) 8001b1e: 4b86 ldr r3, [pc, #536] ; (8001d38 ) 8001b20: 681b ldr r3, [r3, #0] 8001b22: 4a86 ldr r2, [pc, #536] ; (8001d3c ) 8001b24: 015b lsls r3, r3, #5 8001b26: 4413 add r3, r2 8001b28: 3306 adds r3, #6 8001b2a: 881b ldrh r3, [r3, #0] 8001b2c: b29b uxth r3, r3 8001b2e: 2b0b cmp r3, #11 8001b30: f201 803e bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001b34: 4b80 ldr r3, [pc, #512] ; (8001d38 ) 8001b36: 681b ldr r3, [r3, #0] 8001b38: 4980 ldr r1, [pc, #512] ; (8001d3c ) 8001b3a: 015a lsls r2, r3, #5 8001b3c: 440a add r2, r1 8001b3e: 3206 adds r2, #6 8001b40: 8812 ldrh r2, [r2, #0] 8001b42: b292 uxth r2, r2 8001b44: 3201 adds r2, #1 8001b46: b291 uxth r1, r2 8001b48: 4a7c ldr r2, [pc, #496] ; (8001d3c ) 8001b4a: 015b lsls r3, r3, #5 8001b4c: 4413 add r3, r2 8001b4e: 3306 adds r3, #6 8001b50: 460a mov r2, r1 8001b52: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001b54: 4b78 ldr r3, [pc, #480] ; (8001d38 ) 8001b56: 681b ldr r3, [r3, #0] 8001b58: b2db uxtb r3, r3 8001b5a: 4618 mov r0, r3 8001b5c: f00a ff5a bl 800ca14 8001b60: 4603 mov r3, r0 8001b62: 2b00 cmp r3, #0 8001b64: f001 8024 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001b68: 4b73 ldr r3, [pc, #460] ; (8001d38 ) 8001b6a: 681b ldr r3, [r3, #0] 8001b6c: 4973 ldr r1, [pc, #460] ; (8001d3c ) 8001b6e: 015a lsls r2, r3, #5 8001b70: 440a add r2, r1 8001b72: 3206 adds r2, #6 8001b74: 8812 ldrh r2, [r2, #0] 8001b76: b292 uxth r2, r2 8001b78: 3a01 subs r2, #1 8001b7a: b291 uxth r1, r2 8001b7c: 4a6f ldr r2, [pc, #444] ; (8001d3c ) 8001b7e: 015b lsls r3, r3, #5 8001b80: 4413 add r3, r2 8001b82: 3306 adds r3, #6 8001b84: 460a mov r2, r1 8001b86: 801a strh r2, [r3, #0] } 8001b88: f001 b812 b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 10.001f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 20.000f) //20 8001b8c: 4b6a ldr r3, [pc, #424] ; (8001d38 ) 8001b8e: 681b ldr r3, [r3, #0] 8001b90: 4a6a ldr r2, [pc, #424] ; (8001d3c ) 8001b92: 015b lsls r3, r3, #5 8001b94: 4413 add r3, r2 8001b96: 3318 adds r3, #24 8001b98: edd3 7a00 vldr s15, [r3] 8001b9c: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0 8001ba0: eef4 7ac7 vcmpe.f32 s15, s14 8001ba4: eef1 fa10 vmrs APSR_nzcv, fpscr 8001ba8: d836 bhi.n 8001c18 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku500) 8001baa: 4b63 ldr r3, [pc, #396] ; (8001d38 ) 8001bac: 681b ldr r3, [r3, #0] 8001bae: 4a63 ldr r2, [pc, #396] ; (8001d3c ) 8001bb0: 015b lsls r3, r3, #5 8001bb2: 4413 add r3, r2 8001bb4: 3306 adds r3, #6 8001bb6: 881b ldrh r3, [r3, #0] 8001bb8: b29b uxth r3, r3 8001bba: 2b0a cmp r3, #10 8001bbc: f200 87f8 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001bc0: 4b5d ldr r3, [pc, #372] ; (8001d38 ) 8001bc2: 681b ldr r3, [r3, #0] 8001bc4: 495d ldr r1, [pc, #372] ; (8001d3c ) 8001bc6: 015a lsls r2, r3, #5 8001bc8: 440a add r2, r1 8001bca: 3206 adds r2, #6 8001bcc: 8812 ldrh r2, [r2, #0] 8001bce: b292 uxth r2, r2 8001bd0: 3201 adds r2, #1 8001bd2: b291 uxth r1, r2 8001bd4: 4a59 ldr r2, [pc, #356] ; (8001d3c ) 8001bd6: 015b lsls r3, r3, #5 8001bd8: 4413 add r3, r2 8001bda: 3306 adds r3, #6 8001bdc: 460a mov r2, r1 8001bde: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001be0: 4b55 ldr r3, [pc, #340] ; (8001d38 ) 8001be2: 681b ldr r3, [r3, #0] 8001be4: b2db uxtb r3, r3 8001be6: 4618 mov r0, r3 8001be8: f00a ff14 bl 800ca14 8001bec: 4603 mov r3, r0 8001bee: 2b00 cmp r3, #0 8001bf0: f000 87de beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001bf4: 4b50 ldr r3, [pc, #320] ; (8001d38 ) 8001bf6: 681b ldr r3, [r3, #0] 8001bf8: 4950 ldr r1, [pc, #320] ; (8001d3c ) 8001bfa: 015a lsls r2, r3, #5 8001bfc: 440a add r2, r1 8001bfe: 3206 adds r2, #6 8001c00: 8812 ldrh r2, [r2, #0] 8001c02: b292 uxth r2, r2 8001c04: 3a01 subs r2, #1 8001c06: b291 uxth r1, r2 8001c08: 4a4c ldr r2, [pc, #304] ; (8001d3c ) 8001c0a: 015b lsls r3, r3, #5 8001c0c: 4413 add r3, r2 8001c0e: 3306 adds r3, #6 8001c10: 460a mov r2, r1 8001c12: 801a strh r2, [r3, #0] } 8001c14: f000 bfcc b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 20.001f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 50.000f) //50 8001c18: 4b47 ldr r3, [pc, #284] ; (8001d38 ) 8001c1a: 681b ldr r3, [r3, #0] 8001c1c: 4a47 ldr r2, [pc, #284] ; (8001d3c ) 8001c1e: 015b lsls r3, r3, #5 8001c20: 4413 add r3, r2 8001c22: 3318 adds r3, #24 8001c24: edd3 7a00 vldr s15, [r3] 8001c28: ed9f 7a46 vldr s14, [pc, #280] ; 8001d44 8001c2c: eef4 7ac7 vcmpe.f32 s15, s14 8001c30: eef1 fa10 vmrs APSR_nzcv, fpscr 8001c34: d836 bhi.n 8001ca4 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku200) 8001c36: 4b40 ldr r3, [pc, #256] ; (8001d38 ) 8001c38: 681b ldr r3, [r3, #0] 8001c3a: 4a40 ldr r2, [pc, #256] ; (8001d3c ) 8001c3c: 015b lsls r3, r3, #5 8001c3e: 4413 add r3, r2 8001c40: 3306 adds r3, #6 8001c42: 881b ldrh r3, [r3, #0] 8001c44: b29b uxth r3, r3 8001c46: 2b09 cmp r3, #9 8001c48: f200 87b2 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001c4c: 4b3a ldr r3, [pc, #232] ; (8001d38 ) 8001c4e: 681b ldr r3, [r3, #0] 8001c50: 493a ldr r1, [pc, #232] ; (8001d3c ) 8001c52: 015a lsls r2, r3, #5 8001c54: 440a add r2, r1 8001c56: 3206 adds r2, #6 8001c58: 8812 ldrh r2, [r2, #0] 8001c5a: b292 uxth r2, r2 8001c5c: 3201 adds r2, #1 8001c5e: b291 uxth r1, r2 8001c60: 4a36 ldr r2, [pc, #216] ; (8001d3c ) 8001c62: 015b lsls r3, r3, #5 8001c64: 4413 add r3, r2 8001c66: 3306 adds r3, #6 8001c68: 460a mov r2, r1 8001c6a: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001c6c: 4b32 ldr r3, [pc, #200] ; (8001d38 ) 8001c6e: 681b ldr r3, [r3, #0] 8001c70: b2db uxtb r3, r3 8001c72: 4618 mov r0, r3 8001c74: f00a fece bl 800ca14 8001c78: 4603 mov r3, r0 8001c7a: 2b00 cmp r3, #0 8001c7c: f000 8798 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001c80: 4b2d ldr r3, [pc, #180] ; (8001d38 ) 8001c82: 681b ldr r3, [r3, #0] 8001c84: 492d ldr r1, [pc, #180] ; (8001d3c ) 8001c86: 015a lsls r2, r3, #5 8001c88: 440a add r2, r1 8001c8a: 3206 adds r2, #6 8001c8c: 8812 ldrh r2, [r2, #0] 8001c8e: b292 uxth r2, r2 8001c90: 3a01 subs r2, #1 8001c92: b291 uxth r1, r2 8001c94: 4a29 ldr r2, [pc, #164] ; (8001d3c ) 8001c96: 015b lsls r3, r3, #5 8001c98: 4413 add r3, r2 8001c9a: 3306 adds r3, #6 8001c9c: 460a mov r2, r1 8001c9e: 801a strh r2, [r3, #0] } 8001ca0: f000 bf86 b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 50.001f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 100.00f) //100 8001ca4: 4b24 ldr r3, [pc, #144] ; (8001d38 ) 8001ca6: 681b ldr r3, [r3, #0] 8001ca8: 4a24 ldr r2, [pc, #144] ; (8001d3c ) 8001caa: 015b lsls r3, r3, #5 8001cac: 4413 add r3, r2 8001cae: 3318 adds r3, #24 8001cb0: edd3 7a00 vldr s15, [r3] 8001cb4: ed9f 7a24 vldr s14, [pc, #144] ; 8001d48 8001cb8: eef4 7ac7 vcmpe.f32 s15, s14 8001cbc: eef1 fa10 vmrs APSR_nzcv, fpscr 8001cc0: d844 bhi.n 8001d4c if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku100) 8001cc2: 4b1d ldr r3, [pc, #116] ; (8001d38 ) 8001cc4: 681b ldr r3, [r3, #0] 8001cc6: 4a1d ldr r2, [pc, #116] ; (8001d3c ) 8001cc8: 015b lsls r3, r3, #5 8001cca: 4413 add r3, r2 8001ccc: 3306 adds r3, #6 8001cce: 881b ldrh r3, [r3, #0] 8001cd0: b29b uxth r3, r3 8001cd2: 2b08 cmp r3, #8 8001cd4: f200 876c bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001cd8: 4b17 ldr r3, [pc, #92] ; (8001d38 ) 8001cda: 681b ldr r3, [r3, #0] 8001cdc: 4917 ldr r1, [pc, #92] ; (8001d3c ) 8001cde: 015a lsls r2, r3, #5 8001ce0: 440a add r2, r1 8001ce2: 3206 adds r2, #6 8001ce4: 8812 ldrh r2, [r2, #0] 8001ce6: b292 uxth r2, r2 8001ce8: 3201 adds r2, #1 8001cea: b291 uxth r1, r2 8001cec: 4a13 ldr r2, [pc, #76] ; (8001d3c ) 8001cee: 015b lsls r3, r3, #5 8001cf0: 4413 add r3, r2 8001cf2: 3306 adds r3, #6 8001cf4: 460a mov r2, r1 8001cf6: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001cf8: 4b0f ldr r3, [pc, #60] ; (8001d38 ) 8001cfa: 681b ldr r3, [r3, #0] 8001cfc: b2db uxtb r3, r3 8001cfe: 4618 mov r0, r3 8001d00: f00a fe88 bl 800ca14 8001d04: 4603 mov r3, r0 8001d06: 2b00 cmp r3, #0 8001d08: f000 8752 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001d0c: 4b0a ldr r3, [pc, #40] ; (8001d38 ) 8001d0e: 681b ldr r3, [r3, #0] 8001d10: 490a ldr r1, [pc, #40] ; (8001d3c ) 8001d12: 015a lsls r2, r3, #5 8001d14: 440a add r2, r1 8001d16: 3206 adds r2, #6 8001d18: 8812 ldrh r2, [r2, #0] 8001d1a: b292 uxth r2, r2 8001d1c: 3a01 subs r2, #1 8001d1e: b291 uxth r1, r2 8001d20: 4a06 ldr r2, [pc, #24] ; (8001d3c ) 8001d22: 015b lsls r3, r3, #5 8001d24: 4413 add r3, r2 8001d26: 3306 adds r3, #6 8001d28: 460a mov r2, r1 8001d2a: 801a strh r2, [r3, #0] } 8001d2c: f000 bf40 b.w 8002bb0 8001d30: 20020010 .word 0x20020010 8001d34: 20020250 .word 0x20020250 8001d38: 2006b2d0 .word 0x2006b2d0 8001d3c: 2006b510 .word 0x2006b510 8001d40: 3a83126f .word 0x3a83126f 8001d44: 42480000 .word 0x42480000 8001d48: 42c80000 .word 0x42c80000 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 100.01f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 200.00f) //200 8001d4c: 4bae ldr r3, [pc, #696] ; (8002008 ) 8001d4e: 681b ldr r3, [r3, #0] 8001d50: 4aae ldr r2, [pc, #696] ; (800200c ) 8001d52: 015b lsls r3, r3, #5 8001d54: 4413 add r3, r2 8001d56: 3318 adds r3, #24 8001d58: edd3 7a00 vldr s15, [r3] 8001d5c: ed9f 7aac vldr s14, [pc, #688] ; 8002010 8001d60: eef4 7ac7 vcmpe.f32 s15, s14 8001d64: eef1 fa10 vmrs APSR_nzcv, fpscr 8001d68: d836 bhi.n 8001dd8 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku50) 8001d6a: 4ba7 ldr r3, [pc, #668] ; (8002008 ) 8001d6c: 681b ldr r3, [r3, #0] 8001d6e: 4aa7 ldr r2, [pc, #668] ; (800200c ) 8001d70: 015b lsls r3, r3, #5 8001d72: 4413 add r3, r2 8001d74: 3306 adds r3, #6 8001d76: 881b ldrh r3, [r3, #0] 8001d78: b29b uxth r3, r3 8001d7a: 2b07 cmp r3, #7 8001d7c: f200 8718 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001d80: 4ba1 ldr r3, [pc, #644] ; (8002008 ) 8001d82: 681b ldr r3, [r3, #0] 8001d84: 49a1 ldr r1, [pc, #644] ; (800200c ) 8001d86: 015a lsls r2, r3, #5 8001d88: 440a add r2, r1 8001d8a: 3206 adds r2, #6 8001d8c: 8812 ldrh r2, [r2, #0] 8001d8e: b292 uxth r2, r2 8001d90: 3201 adds r2, #1 8001d92: b291 uxth r1, r2 8001d94: 4a9d ldr r2, [pc, #628] ; (800200c ) 8001d96: 015b lsls r3, r3, #5 8001d98: 4413 add r3, r2 8001d9a: 3306 adds r3, #6 8001d9c: 460a mov r2, r1 8001d9e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001da0: 4b99 ldr r3, [pc, #612] ; (8002008 ) 8001da2: 681b ldr r3, [r3, #0] 8001da4: b2db uxtb r3, r3 8001da6: 4618 mov r0, r3 8001da8: f00a fe34 bl 800ca14 8001dac: 4603 mov r3, r0 8001dae: 2b00 cmp r3, #0 8001db0: f000 86fe beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001db4: 4b94 ldr r3, [pc, #592] ; (8002008 ) 8001db6: 681b ldr r3, [r3, #0] 8001db8: 4994 ldr r1, [pc, #592] ; (800200c ) 8001dba: 015a lsls r2, r3, #5 8001dbc: 440a add r2, r1 8001dbe: 3206 adds r2, #6 8001dc0: 8812 ldrh r2, [r2, #0] 8001dc2: b292 uxth r2, r2 8001dc4: 3a01 subs r2, #1 8001dc6: b291 uxth r1, r2 8001dc8: 4a90 ldr r2, [pc, #576] ; (800200c ) 8001dca: 015b lsls r3, r3, #5 8001dcc: 4413 add r3, r2 8001dce: 3306 adds r3, #6 8001dd0: 460a mov r2, r1 8001dd2: 801a strh r2, [r3, #0] } 8001dd4: f000 beec b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 200.01f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 500.00f) //500 8001dd8: 4b8b ldr r3, [pc, #556] ; (8002008 ) 8001dda: 681b ldr r3, [r3, #0] 8001ddc: 4a8b ldr r2, [pc, #556] ; (800200c ) 8001dde: 015b lsls r3, r3, #5 8001de0: 4413 add r3, r2 8001de2: 3318 adds r3, #24 8001de4: edd3 7a00 vldr s15, [r3] 8001de8: ed9f 7a8a vldr s14, [pc, #552] ; 8002014 8001dec: eef4 7ac7 vcmpe.f32 s15, s14 8001df0: eef1 fa10 vmrs APSR_nzcv, fpscr 8001df4: d836 bhi.n 8001e64 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku20) 8001df6: 4b84 ldr r3, [pc, #528] ; (8002008 ) 8001df8: 681b ldr r3, [r3, #0] 8001dfa: 4a84 ldr r2, [pc, #528] ; (800200c ) 8001dfc: 015b lsls r3, r3, #5 8001dfe: 4413 add r3, r2 8001e00: 3306 adds r3, #6 8001e02: 881b ldrh r3, [r3, #0] 8001e04: b29b uxth r3, r3 8001e06: 2b06 cmp r3, #6 8001e08: f200 86d2 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001e0c: 4b7e ldr r3, [pc, #504] ; (8002008 ) 8001e0e: 681b ldr r3, [r3, #0] 8001e10: 497e ldr r1, [pc, #504] ; (800200c ) 8001e12: 015a lsls r2, r3, #5 8001e14: 440a add r2, r1 8001e16: 3206 adds r2, #6 8001e18: 8812 ldrh r2, [r2, #0] 8001e1a: b292 uxth r2, r2 8001e1c: 3201 adds r2, #1 8001e1e: b291 uxth r1, r2 8001e20: 4a7a ldr r2, [pc, #488] ; (800200c ) 8001e22: 015b lsls r3, r3, #5 8001e24: 4413 add r3, r2 8001e26: 3306 adds r3, #6 8001e28: 460a mov r2, r1 8001e2a: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001e2c: 4b76 ldr r3, [pc, #472] ; (8002008 ) 8001e2e: 681b ldr r3, [r3, #0] 8001e30: b2db uxtb r3, r3 8001e32: 4618 mov r0, r3 8001e34: f00a fdee bl 800ca14 8001e38: 4603 mov r3, r0 8001e3a: 2b00 cmp r3, #0 8001e3c: f000 86b8 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001e40: 4b71 ldr r3, [pc, #452] ; (8002008 ) 8001e42: 681b ldr r3, [r3, #0] 8001e44: 4971 ldr r1, [pc, #452] ; (800200c ) 8001e46: 015a lsls r2, r3, #5 8001e48: 440a add r2, r1 8001e4a: 3206 adds r2, #6 8001e4c: 8812 ldrh r2, [r2, #0] 8001e4e: b292 uxth r2, r2 8001e50: 3a01 subs r2, #1 8001e52: b291 uxth r1, r2 8001e54: 4a6d ldr r2, [pc, #436] ; (800200c ) 8001e56: 015b lsls r3, r3, #5 8001e58: 4413 add r3, r2 8001e5a: 3306 adds r3, #6 8001e5c: 460a mov r2, r1 8001e5e: 801a strh r2, [r3, #0] } 8001e60: f000 bea6 b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 500.01f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 1000.0f) //1000 8001e64: 4b68 ldr r3, [pc, #416] ; (8002008 ) 8001e66: 681b ldr r3, [r3, #0] 8001e68: 4a68 ldr r2, [pc, #416] ; (800200c ) 8001e6a: 015b lsls r3, r3, #5 8001e6c: 4413 add r3, r2 8001e6e: 3318 adds r3, #24 8001e70: edd3 7a00 vldr s15, [r3] 8001e74: ed9f 7a68 vldr s14, [pc, #416] ; 8002018 8001e78: eef4 7ac7 vcmpe.f32 s15, s14 8001e7c: eef1 fa10 vmrs APSR_nzcv, fpscr 8001e80: d836 bhi.n 8001ef0 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku10) 8001e82: 4b61 ldr r3, [pc, #388] ; (8002008 ) 8001e84: 681b ldr r3, [r3, #0] 8001e86: 4a61 ldr r2, [pc, #388] ; (800200c ) 8001e88: 015b lsls r3, r3, #5 8001e8a: 4413 add r3, r2 8001e8c: 3306 adds r3, #6 8001e8e: 881b ldrh r3, [r3, #0] 8001e90: b29b uxth r3, r3 8001e92: 2b05 cmp r3, #5 8001e94: f200 868c bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001e98: 4b5b ldr r3, [pc, #364] ; (8002008 ) 8001e9a: 681b ldr r3, [r3, #0] 8001e9c: 495b ldr r1, [pc, #364] ; (800200c ) 8001e9e: 015a lsls r2, r3, #5 8001ea0: 440a add r2, r1 8001ea2: 3206 adds r2, #6 8001ea4: 8812 ldrh r2, [r2, #0] 8001ea6: b292 uxth r2, r2 8001ea8: 3201 adds r2, #1 8001eaa: b291 uxth r1, r2 8001eac: 4a57 ldr r2, [pc, #348] ; (800200c ) 8001eae: 015b lsls r3, r3, #5 8001eb0: 4413 add r3, r2 8001eb2: 3306 adds r3, #6 8001eb4: 460a mov r2, r1 8001eb6: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001eb8: 4b53 ldr r3, [pc, #332] ; (8002008 ) 8001eba: 681b ldr r3, [r3, #0] 8001ebc: b2db uxtb r3, r3 8001ebe: 4618 mov r0, r3 8001ec0: f00a fda8 bl 800ca14 8001ec4: 4603 mov r3, r0 8001ec6: 2b00 cmp r3, #0 8001ec8: f000 8672 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001ecc: 4b4e ldr r3, [pc, #312] ; (8002008 ) 8001ece: 681b ldr r3, [r3, #0] 8001ed0: 494e ldr r1, [pc, #312] ; (800200c ) 8001ed2: 015a lsls r2, r3, #5 8001ed4: 440a add r2, r1 8001ed6: 3206 adds r2, #6 8001ed8: 8812 ldrh r2, [r2, #0] 8001eda: b292 uxth r2, r2 8001edc: 3a01 subs r2, #1 8001ede: b291 uxth r1, r2 8001ee0: 4a4a ldr r2, [pc, #296] ; (800200c ) 8001ee2: 015b lsls r3, r3, #5 8001ee4: 4413 add r3, r2 8001ee6: 3306 adds r3, #6 8001ee8: 460a mov r2, r1 8001eea: 801a strh r2, [r3, #0] } 8001eec: f000 be60 b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 1000.1f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 2000.0f) //2000 8001ef0: 4b45 ldr r3, [pc, #276] ; (8002008 ) 8001ef2: 681b ldr r3, [r3, #0] 8001ef4: 4a45 ldr r2, [pc, #276] ; (800200c ) 8001ef6: 015b lsls r3, r3, #5 8001ef8: 4413 add r3, r2 8001efa: 3318 adds r3, #24 8001efc: edd3 7a00 vldr s15, [r3] 8001f00: ed9f 7a46 vldr s14, [pc, #280] ; 800201c 8001f04: eef4 7ac7 vcmpe.f32 s15, s14 8001f08: eef1 fa10 vmrs APSR_nzcv, fpscr 8001f0c: d836 bhi.n 8001f7c if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku5) 8001f0e: 4b3e ldr r3, [pc, #248] ; (8002008 ) 8001f10: 681b ldr r3, [r3, #0] 8001f12: 4a3e ldr r2, [pc, #248] ; (800200c ) 8001f14: 015b lsls r3, r3, #5 8001f16: 4413 add r3, r2 8001f18: 3306 adds r3, #6 8001f1a: 881b ldrh r3, [r3, #0] 8001f1c: b29b uxth r3, r3 8001f1e: 2b04 cmp r3, #4 8001f20: f200 8646 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001f24: 4b38 ldr r3, [pc, #224] ; (8002008 ) 8001f26: 681b ldr r3, [r3, #0] 8001f28: 4938 ldr r1, [pc, #224] ; (800200c ) 8001f2a: 015a lsls r2, r3, #5 8001f2c: 440a add r2, r1 8001f2e: 3206 adds r2, #6 8001f30: 8812 ldrh r2, [r2, #0] 8001f32: b292 uxth r2, r2 8001f34: 3201 adds r2, #1 8001f36: b291 uxth r1, r2 8001f38: 4a34 ldr r2, [pc, #208] ; (800200c ) 8001f3a: 015b lsls r3, r3, #5 8001f3c: 4413 add r3, r2 8001f3e: 3306 adds r3, #6 8001f40: 460a mov r2, r1 8001f42: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001f44: 4b30 ldr r3, [pc, #192] ; (8002008 ) 8001f46: 681b ldr r3, [r3, #0] 8001f48: b2db uxtb r3, r3 8001f4a: 4618 mov r0, r3 8001f4c: f00a fd62 bl 800ca14 8001f50: 4603 mov r3, r0 8001f52: 2b00 cmp r3, #0 8001f54: f000 862c beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001f58: 4b2b ldr r3, [pc, #172] ; (8002008 ) 8001f5a: 681b ldr r3, [r3, #0] 8001f5c: 492b ldr r1, [pc, #172] ; (800200c ) 8001f5e: 015a lsls r2, r3, #5 8001f60: 440a add r2, r1 8001f62: 3206 adds r2, #6 8001f64: 8812 ldrh r2, [r2, #0] 8001f66: b292 uxth r2, r2 8001f68: 3a01 subs r2, #1 8001f6a: b291 uxth r1, r2 8001f6c: 4a27 ldr r2, [pc, #156] ; (800200c ) 8001f6e: 015b lsls r3, r3, #5 8001f70: 4413 add r3, r2 8001f72: 3306 adds r3, #6 8001f74: 460a mov r2, r1 8001f76: 801a strh r2, [r3, #0] } 8001f78: f000 be1a b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 2000.1f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 5000.0f) //5000 8001f7c: 4b22 ldr r3, [pc, #136] ; (8002008 ) 8001f7e: 681b ldr r3, [r3, #0] 8001f80: 4a22 ldr r2, [pc, #136] ; (800200c ) 8001f82: 015b lsls r3, r3, #5 8001f84: 4413 add r3, r2 8001f86: 3318 adds r3, #24 8001f88: edd3 7a00 vldr s15, [r3] 8001f8c: ed9f 7a24 vldr s14, [pc, #144] ; 8002020 8001f90: eef4 7ac7 vcmpe.f32 s15, s14 8001f94: eef1 fa10 vmrs APSR_nzcv, fpscr 8001f98: d844 bhi.n 8002024 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku2) 8001f9a: 4b1b ldr r3, [pc, #108] ; (8002008 ) 8001f9c: 681b ldr r3, [r3, #0] 8001f9e: 4a1b ldr r2, [pc, #108] ; (800200c ) 8001fa0: 015b lsls r3, r3, #5 8001fa2: 4413 add r3, r2 8001fa4: 3306 adds r3, #6 8001fa6: 881b ldrh r3, [r3, #0] 8001fa8: b29b uxth r3, r3 8001faa: 2b03 cmp r3, #3 8001fac: f200 8600 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8001fb0: 4b15 ldr r3, [pc, #84] ; (8002008 ) 8001fb2: 681b ldr r3, [r3, #0] 8001fb4: 4915 ldr r1, [pc, #84] ; (800200c ) 8001fb6: 015a lsls r2, r3, #5 8001fb8: 440a add r2, r1 8001fba: 3206 adds r2, #6 8001fbc: 8812 ldrh r2, [r2, #0] 8001fbe: b292 uxth r2, r2 8001fc0: 3201 adds r2, #1 8001fc2: b291 uxth r1, r2 8001fc4: 4a11 ldr r2, [pc, #68] ; (800200c ) 8001fc6: 015b lsls r3, r3, #5 8001fc8: 4413 add r3, r2 8001fca: 3306 adds r3, #6 8001fcc: 460a mov r2, r1 8001fce: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8001fd0: 4b0d ldr r3, [pc, #52] ; (8002008 ) 8001fd2: 681b ldr r3, [r3, #0] 8001fd4: b2db uxtb r3, r3 8001fd6: 4618 mov r0, r3 8001fd8: f00a fd1c bl 800ca14 8001fdc: 4603 mov r3, r0 8001fde: 2b00 cmp r3, #0 8001fe0: f000 85e6 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8001fe4: 4b08 ldr r3, [pc, #32] ; (8002008 ) 8001fe6: 681b ldr r3, [r3, #0] 8001fe8: 4908 ldr r1, [pc, #32] ; (800200c ) 8001fea: 015a lsls r2, r3, #5 8001fec: 440a add r2, r1 8001fee: 3206 adds r2, #6 8001ff0: 8812 ldrh r2, [r2, #0] 8001ff2: b292 uxth r2, r2 8001ff4: 3a01 subs r2, #1 8001ff6: b291 uxth r1, r2 8001ff8: 4a04 ldr r2, [pc, #16] ; (800200c ) 8001ffa: 015b lsls r3, r3, #5 8001ffc: 4413 add r3, r2 8001ffe: 3306 adds r3, #6 8002000: 460a mov r2, r1 8002002: 801a strh r2, [r3, #0] } 8002004: f000 bdd4 b.w 8002bb0 8002008: 2006b2d0 .word 0x2006b2d0 800200c: 2006b510 .word 0x2006b510 8002010: 43480000 .word 0x43480000 8002014: 43fa0000 .word 0x43fa0000 8002018: 447a0000 .word 0x447a0000 800201c: 44fa0000 .word 0x44fa0000 8002020: 459c4000 .word 0x459c4000 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 5000.1f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 10000.0f) //10000 8002024: 4bb6 ldr r3, [pc, #728] ; (8002300 ) 8002026: 681b ldr r3, [r3, #0] 8002028: 4ab6 ldr r2, [pc, #728] ; (8002304 ) 800202a: 015b lsls r3, r3, #5 800202c: 4413 add r3, r2 800202e: 3318 adds r3, #24 8002030: edd3 7a00 vldr s15, [r3] 8002034: ed9f 7ab4 vldr s14, [pc, #720] ; 8002308 8002038: eef4 7ac7 vcmpe.f32 s15, s14 800203c: eef1 fa10 vmrs APSR_nzcv, fpscr 8002040: d836 bhi.n 80020b0 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1) 8002042: 4baf ldr r3, [pc, #700] ; (8002300 ) 8002044: 681b ldr r3, [r3, #0] 8002046: 4aaf ldr r2, [pc, #700] ; (8002304 ) 8002048: 015b lsls r3, r3, #5 800204a: 4413 add r3, r2 800204c: 3306 adds r3, #6 800204e: 881b ldrh r3, [r3, #0] 8002050: b29b uxth r3, r3 8002052: 2b02 cmp r3, #2 8002054: f200 85ac bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002058: 4ba9 ldr r3, [pc, #676] ; (8002300 ) 800205a: 681b ldr r3, [r3, #0] 800205c: 49a9 ldr r1, [pc, #676] ; (8002304 ) 800205e: 015a lsls r2, r3, #5 8002060: 440a add r2, r1 8002062: 3206 adds r2, #6 8002064: 8812 ldrh r2, [r2, #0] 8002066: b292 uxth r2, r2 8002068: 3201 adds r2, #1 800206a: b291 uxth r1, r2 800206c: 4aa5 ldr r2, [pc, #660] ; (8002304 ) 800206e: 015b lsls r3, r3, #5 8002070: 4413 add r3, r2 8002072: 3306 adds r3, #6 8002074: 460a mov r2, r1 8002076: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002078: 4ba1 ldr r3, [pc, #644] ; (8002300 ) 800207a: 681b ldr r3, [r3, #0] 800207c: b2db uxtb r3, r3 800207e: 4618 mov r0, r3 8002080: f00a fcc8 bl 800ca14 8002084: 4603 mov r3, r0 8002086: 2b00 cmp r3, #0 8002088: f000 8592 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 800208c: 4b9c ldr r3, [pc, #624] ; (8002300 ) 800208e: 681b ldr r3, [r3, #0] 8002090: 499c ldr r1, [pc, #624] ; (8002304 ) 8002092: 015a lsls r2, r3, #5 8002094: 440a add r2, r1 8002096: 3206 adds r2, #6 8002098: 8812 ldrh r2, [r2, #0] 800209a: b292 uxth r2, r2 800209c: 3a01 subs r2, #1 800209e: b291 uxth r1, r2 80020a0: 4a98 ldr r2, [pc, #608] ; (8002304 ) 80020a2: 015b lsls r3, r3, #5 80020a4: 4413 add r3, r2 80020a6: 3306 adds r3, #6 80020a8: 460a mov r2, r1 80020aa: 801a strh r2, [r3, #0] } 80020ac: f000 bd80 b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 10001.0f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 20000.0f) //20000 80020b0: 4b93 ldr r3, [pc, #588] ; (8002300 ) 80020b2: 681b ldr r3, [r3, #0] 80020b4: 4a93 ldr r2, [pc, #588] ; (8002304 ) 80020b6: 015b lsls r3, r3, #5 80020b8: 4413 add r3, r2 80020ba: 3318 adds r3, #24 80020bc: edd3 7a00 vldr s15, [r3] 80020c0: ed9f 7a92 vldr s14, [pc, #584] ; 800230c 80020c4: eef4 7ac7 vcmpe.f32 s15, s14 80020c8: eef1 fa10 vmrs APSR_nzcv, fpscr 80020cc: d836 bhi.n 800213c if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_5) 80020ce: 4b8c ldr r3, [pc, #560] ; (8002300 ) 80020d0: 681b ldr r3, [r3, #0] 80020d2: 4a8c ldr r2, [pc, #560] ; (8002304 ) 80020d4: 015b lsls r3, r3, #5 80020d6: 4413 add r3, r2 80020d8: 3306 adds r3, #6 80020da: 881b ldrh r3, [r3, #0] 80020dc: b29b uxth r3, r3 80020de: 2b01 cmp r3, #1 80020e0: f200 8566 bhi.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 80020e4: 4b86 ldr r3, [pc, #536] ; (8002300 ) 80020e6: 681b ldr r3, [r3, #0] 80020e8: 4986 ldr r1, [pc, #536] ; (8002304 ) 80020ea: 015a lsls r2, r3, #5 80020ec: 440a add r2, r1 80020ee: 3206 adds r2, #6 80020f0: 8812 ldrh r2, [r2, #0] 80020f2: b292 uxth r2, r2 80020f4: 3201 adds r2, #1 80020f6: b291 uxth r1, r2 80020f8: 4a82 ldr r2, [pc, #520] ; (8002304 ) 80020fa: 015b lsls r3, r3, #5 80020fc: 4413 add r3, r2 80020fe: 3306 adds r3, #6 8002100: 460a mov r2, r1 8002102: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002104: 4b7e ldr r3, [pc, #504] ; (8002300 ) 8002106: 681b ldr r3, [r3, #0] 8002108: b2db uxtb r3, r3 800210a: 4618 mov r0, r3 800210c: f00a fc82 bl 800ca14 8002110: 4603 mov r3, r0 8002112: 2b00 cmp r3, #0 8002114: f000 854c beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 8002118: 4b79 ldr r3, [pc, #484] ; (8002300 ) 800211a: 681b ldr r3, [r3, #0] 800211c: 4979 ldr r1, [pc, #484] ; (8002304 ) 800211e: 015a lsls r2, r3, #5 8002120: 440a add r2, r1 8002122: 3206 adds r2, #6 8002124: 8812 ldrh r2, [r2, #0] 8002126: b292 uxth r2, r2 8002128: 3a01 subs r2, #1 800212a: b291 uxth r1, r2 800212c: 4a75 ldr r2, [pc, #468] ; (8002304 ) 800212e: 015b lsls r3, r3, #5 8002130: 4413 add r3, r2 8002132: 3306 adds r3, #6 8002134: 460a mov r2, r1 8002136: 801a strh r2, [r3, #0] } 8002138: f000 bd3a b.w 8002bb0 if(/*pardata.amplif[ACTIVE_CHANNEL].SENS >= 20001.0f && */pardata.amplif[ACTIVE_CHANNEL].SENS <= 50000.0f) //50000 800213c: 4b70 ldr r3, [pc, #448] ; (8002300 ) 800213e: 681b ldr r3, [r3, #0] 8002140: 4a70 ldr r2, [pc, #448] ; (8002304 ) 8002142: 015b lsls r3, r3, #5 8002144: 4413 add r3, r2 8002146: 3318 adds r3, #24 8002148: edd3 7a00 vldr s15, [r3] 800214c: ed9f 7a70 vldr s14, [pc, #448] ; 8002310 8002150: eef4 7ac7 vcmpe.f32 s15, s14 8002154: eef1 fa10 vmrs APSR_nzcv, fpscr 8002158: d836 bhi.n 80021c8 if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_2) 800215a: 4b69 ldr r3, [pc, #420] ; (8002300 ) 800215c: 681b ldr r3, [r3, #0] 800215e: 4a69 ldr r2, [pc, #420] ; (8002304 ) 8002160: 015b lsls r3, r3, #5 8002162: 4413 add r3, r2 8002164: 3306 adds r3, #6 8002166: 881b ldrh r3, [r3, #0] 8002168: b29b uxth r3, r3 800216a: 2b00 cmp r3, #0 800216c: f040 8520 bne.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU++; 8002170: 4b63 ldr r3, [pc, #396] ; (8002300 ) 8002172: 681b ldr r3, [r3, #0] 8002174: 4963 ldr r1, [pc, #396] ; (8002304 ) 8002176: 015a lsls r2, r3, #5 8002178: 440a add r2, r1 800217a: 3206 adds r2, #6 800217c: 8812 ldrh r2, [r2, #0] 800217e: b292 uxth r2, r2 8002180: 3201 adds r2, #1 8002182: b291 uxth r1, r2 8002184: 4a5f ldr r2, [pc, #380] ; (8002304 ) 8002186: 015b lsls r3, r3, #5 8002188: 4413 add r3, r2 800218a: 3306 adds r3, #6 800218c: 460a mov r2, r1 800218e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002190: 4b5b ldr r3, [pc, #364] ; (8002300 ) 8002192: 681b ldr r3, [r3, #0] 8002194: b2db uxtb r3, r3 8002196: 4618 mov r0, r3 8002198: f00a fc3c bl 800ca14 800219c: 4603 mov r3, r0 800219e: 2b00 cmp r3, #0 80021a0: f000 8506 beq.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU--; 80021a4: 4b56 ldr r3, [pc, #344] ; (8002300 ) 80021a6: 681b ldr r3, [r3, #0] 80021a8: 4956 ldr r1, [pc, #344] ; (8002304 ) 80021aa: 015a lsls r2, r3, #5 80021ac: 440a add r2, r1 80021ae: 3206 adds r2, #6 80021b0: 8812 ldrh r2, [r2, #0] 80021b2: b292 uxth r2, r2 80021b4: 3a01 subs r2, #1 80021b6: b291 uxth r1, r2 80021b8: 4a52 ldr r2, [pc, #328] ; (8002304 ) 80021ba: 015b lsls r3, r3, #5 80021bc: 4413 add r3, r2 80021be: 3306 adds r3, #6 80021c0: 460a mov r2, r1 80021c2: 801a strh r2, [r3, #0] } 80021c4: f000 bcf4 b.w 8002bb0 if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) //99999 80021c8: 4b4d ldr r3, [pc, #308] ; (8002300 ) 80021ca: 681b ldr r3, [r3, #0] 80021cc: 4a4d ldr r2, [pc, #308] ; (8002304 ) 80021ce: 015b lsls r3, r3, #5 80021d0: 4413 add r3, r2 80021d2: 3318 adds r3, #24 80021d4: edd3 7a00 vldr s15, [r3] 80021d8: ed9f 7a4e vldr s14, [pc, #312] ; 8002314 80021dc: eef4 7ac7 vcmpe.f32 s15, s14 80021e0: eef1 fa10 vmrs APSR_nzcv, fpscr 80021e4: d401 bmi.n 80021ea } 80021e6: f000 bce3 b.w 8002bb0 pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1; 80021ea: 4b45 ldr r3, [pc, #276] ; (8002300 ) 80021ec: 681b ldr r3, [r3, #0] 80021ee: 4a45 ldr r2, [pc, #276] ; (8002304 ) 80021f0: 015b lsls r3, r3, #5 80021f2: 4413 add r3, r2 80021f4: 3306 adds r3, #6 80021f6: 2200 movs r2, #0 80021f8: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80021fa: 4b41 ldr r3, [pc, #260] ; (8002300 ) 80021fc: 681b ldr r3, [r3, #0] 80021fe: b2db uxtb r3, r3 8002200: 4618 mov r0, r3 8002202: f00a fc07 bl 800ca14 } 8002206: f000 bcd3 b.w 8002bb0 menupos = Val; 800220a: 4b43 ldr r3, [pc, #268] ; (8002318 ) 800220c: 2204 movs r2, #4 800220e: 701a strb r2, [r3, #0] } 8002210: f000 bcce b.w 8002bb0 if(menupos == Kikdt) 8002214: 4b40 ldr r3, [pc, #256] ; (8002318 ) 8002216: 781b ldrb r3, [r3, #0] 8002218: b2db uxtb r3, r3 800221a: 2b06 cmp r3, #6 800221c: f040 80d2 bne.w 80023c4 if(ikdt < 9) { 8002220: 69bb ldr r3, [r7, #24] 8002222: 2b08 cmp r3, #8 8002224: d802 bhi.n 800222c ikdt++; 8002226: 69bb ldr r3, [r7, #24] 8002228: 3301 adds r3, #1 800222a: 61bb str r3, [r7, #24] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 800222c: 69bb ldr r3, [r7, #24] 800222e: f242 7210 movw r2, #10000 ; 0x2710 8002232: fb02 f203 mul.w r2, r2, r3 8002236: 697b ldr r3, [r7, #20] 8002238: f44f 717a mov.w r1, #1000 ; 0x3e8 800223c: fb01 f303 mul.w r3, r1, r3 8002240: 18d1 adds r1, r2, r3 8002242: 68fa ldr r2, [r7, #12] 8002244: 4613 mov r3, r2 8002246: 009b lsls r3, r3, #2 8002248: 4413 add r3, r2 800224a: 005b lsls r3, r3, #1 800224c: 4618 mov r0, r3 800224e: 693b ldr r3, [r7, #16] 8002250: 2264 movs r2, #100 ; 0x64 8002252: fb02 f303 mul.w r3, r2, r3 8002256: 4403 add r3, r0 8002258: 18ca adds r2, r1, r3 800225a: 68bb ldr r3, [r7, #8] 800225c: 4413 add r3, r2 800225e: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8002260: 4b27 ldr r3, [pc, #156] ; (8002300 ) 8002262: 681b ldr r3, [r3, #0] 8002264: 69fa ldr r2, [r7, #28] 8002266: ee07 2a90 vmov s15, r2 800226a: eef8 7a67 vcvt.f32.u32 s15, s15 800226e: 4a25 ldr r2, [pc, #148] ; (8002304 ) 8002270: 015b lsls r3, r3, #5 8002272: 4413 add r3, r2 8002274: 3318 adds r3, #24 8002276: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 800227a: 687b ldr r3, [r7, #4] 800227c: 2b01 cmp r3, #1 800227e: d112 bne.n 80022a6 8002280: 4b1f ldr r3, [pc, #124] ; (8002300 ) 8002282: 681b ldr r3, [r3, #0] 8002284: 491f ldr r1, [pc, #124] ; (8002304 ) 8002286: 015a lsls r2, r3, #5 8002288: 440a add r2, r1 800228a: 3218 adds r2, #24 800228c: edd2 7a00 vldr s15, [r2] 8002290: ed9f 7a22 vldr s14, [pc, #136] ; 800231c 8002294: ee67 7a87 vmul.f32 s15, s15, s14 8002298: 4a1a ldr r2, [pc, #104] ; (8002304 ) 800229a: 015b lsls r3, r3, #5 800229c: 4413 add r3, r2 800229e: 3318 adds r3, #24 80022a0: edc3 7a00 vstr s15, [r3] 80022a4: e055 b.n 8002352 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80022a6: 687b ldr r3, [r7, #4] 80022a8: 2b02 cmp r3, #2 80022aa: d112 bne.n 80022d2 80022ac: 4b14 ldr r3, [pc, #80] ; (8002300 ) 80022ae: 681b ldr r3, [r3, #0] 80022b0: 4914 ldr r1, [pc, #80] ; (8002304 ) 80022b2: 015a lsls r2, r3, #5 80022b4: 440a add r2, r1 80022b6: 3218 adds r2, #24 80022b8: edd2 7a00 vldr s15, [r2] 80022bc: ed9f 7a18 vldr s14, [pc, #96] ; 8002320 80022c0: ee67 7a87 vmul.f32 s15, s15, s14 80022c4: 4a0f ldr r2, [pc, #60] ; (8002304 ) 80022c6: 015b lsls r3, r3, #5 80022c8: 4413 add r3, r2 80022ca: 3318 adds r3, #24 80022cc: edc3 7a00 vstr s15, [r3] 80022d0: e03f b.n 8002352 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80022d2: 687b ldr r3, [r7, #4] 80022d4: 2b03 cmp r3, #3 80022d6: d127 bne.n 8002328 80022d8: 4b09 ldr r3, [pc, #36] ; (8002300 ) 80022da: 681b ldr r3, [r3, #0] 80022dc: 4909 ldr r1, [pc, #36] ; (8002304 ) 80022de: 015a lsls r2, r3, #5 80022e0: 440a add r2, r1 80022e2: 3218 adds r2, #24 80022e4: edd2 7a00 vldr s15, [r2] 80022e8: ed9f 7a0e vldr s14, [pc, #56] ; 8002324 80022ec: ee67 7a87 vmul.f32 s15, s15, s14 80022f0: 4a04 ldr r2, [pc, #16] ; (8002304 ) 80022f2: 015b lsls r3, r3, #5 80022f4: 4413 add r3, r2 80022f6: 3318 adds r3, #24 80022f8: edc3 7a00 vstr s15, [r3] 80022fc: e029 b.n 8002352 80022fe: bf00 nop 8002300: 2006b2d0 .word 0x2006b2d0 8002304: 2006b510 .word 0x2006b510 8002308: 461c4000 .word 0x461c4000 800230c: 469c4000 .word 0x469c4000 8002310: 47435000 .word 0x47435000 8002314: 47c35000 .word 0x47c35000 8002318: 20020010 .word 0x20020010 800231c: 3dcccccd .word 0x3dcccccd 8002320: 3c23d70a .word 0x3c23d70a 8002324: 3a83126f .word 0x3a83126f else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8002328: 687b ldr r3, [r7, #4] 800232a: 2b04 cmp r3, #4 800232c: d111 bne.n 8002352 800232e: 4bb6 ldr r3, [pc, #728] ; (8002608 ) 8002330: 681b ldr r3, [r3, #0] 8002332: 49b6 ldr r1, [pc, #728] ; (800260c ) 8002334: 015a lsls r2, r3, #5 8002336: 440a add r2, r1 8002338: 3218 adds r2, #24 800233a: edd2 7a00 vldr s15, [r2] 800233e: ed9f 7ab4 vldr s14, [pc, #720] ; 8002610 8002342: ee67 7a87 vmul.f32 s15, s15, s14 8002346: 4ab1 ldr r2, [pc, #708] ; (800260c ) 8002348: 015b lsls r3, r3, #5 800234a: 4413 add r3, r2 800234c: 3318 adds r3, #24 800234e: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8002352: 4bad ldr r3, [pc, #692] ; (8002608 ) 8002354: 681b ldr r3, [r3, #0] 8002356: 4aad ldr r2, [pc, #692] ; (800260c ) 8002358: 015b lsls r3, r3, #5 800235a: 4413 add r3, r2 800235c: 3318 adds r3, #24 800235e: edd3 7a00 vldr s15, [r3] 8002362: eef5 7ac0 vcmpe.f32 s15, #0.0 8002366: eef1 fa10 vmrs APSR_nzcv, fpscr 800236a: d807 bhi.n 800237c pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 800236c: 4ba6 ldr r3, [pc, #664] ; (8002608 ) 800236e: 681b ldr r3, [r3, #0] 8002370: 4aa6 ldr r2, [pc, #664] ; (800260c ) 8002372: 015b lsls r3, r3, #5 8002374: 4413 add r3, r2 8002376: 3318 adds r3, #24 8002378: 4aa6 ldr r2, [pc, #664] ; (8002614 ) 800237a: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800237c: 4ba2 ldr r3, [pc, #648] ; (8002608 ) 800237e: 681b ldr r3, [r3, #0] 8002380: 4aa2 ldr r2, [pc, #648] ; (800260c ) 8002382: 015b lsls r3, r3, #5 8002384: 4413 add r3, r2 8002386: 3318 adds r3, #24 8002388: edd3 7a00 vldr s15, [r3] 800238c: ed9f 7aa2 vldr s14, [pc, #648] ; 8002618 8002390: eef4 7ac7 vcmpe.f32 s15, s14 8002394: eef1 fa10 vmrs APSR_nzcv, fpscr 8002398: db07 blt.n 80023aa pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800239a: 4b9b ldr r3, [pc, #620] ; (8002608 ) 800239c: 681b ldr r3, [r3, #0] 800239e: 4a9b ldr r2, [pc, #620] ; (800260c ) 80023a0: 015b lsls r3, r3, #5 80023a2: 4413 add r3, r2 80023a4: 3318 adds r3, #24 80023a6: 4a9d ldr r2, [pc, #628] ; (800261c ) 80023a8: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80023aa: 4b97 ldr r3, [pc, #604] ; (8002608 ) 80023ac: 681b ldr r3, [r3, #0] 80023ae: 4a97 ldr r2, [pc, #604] ; (800260c ) 80023b0: 015b lsls r3, r3, #5 80023b2: 4413 add r3, r2 80023b4: 3318 adds r3, #24 80023b6: edd3 7a00 vldr s15, [r3] 80023ba: eeb0 0a67 vmov.f32 s0, s15 80023be: f001 fc0b bl 8003bd8 } 80023c2: e3f5 b.n 8002bb0 if(menupos == Kikt) 80023c4: 4b96 ldr r3, [pc, #600] ; (8002620 ) 80023c6: 781b ldrb r3, [r3, #0] 80023c8: b2db uxtb r3, r3 80023ca: 2b07 cmp r3, #7 80023cc: f040 80bd bne.w 800254a if(ikt < 9) { 80023d0: 697b ldr r3, [r7, #20] 80023d2: 2b08 cmp r3, #8 80023d4: d802 bhi.n 80023dc ikt++; 80023d6: 697b ldr r3, [r7, #20] 80023d8: 3301 adds r3, #1 80023da: 617b str r3, [r7, #20] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80023dc: 69bb ldr r3, [r7, #24] 80023de: f242 7210 movw r2, #10000 ; 0x2710 80023e2: fb02 f203 mul.w r2, r2, r3 80023e6: 697b ldr r3, [r7, #20] 80023e8: f44f 717a mov.w r1, #1000 ; 0x3e8 80023ec: fb01 f303 mul.w r3, r1, r3 80023f0: 18d1 adds r1, r2, r3 80023f2: 68fa ldr r2, [r7, #12] 80023f4: 4613 mov r3, r2 80023f6: 009b lsls r3, r3, #2 80023f8: 4413 add r3, r2 80023fa: 005b lsls r3, r3, #1 80023fc: 4618 mov r0, r3 80023fe: 693b ldr r3, [r7, #16] 8002400: 2264 movs r2, #100 ; 0x64 8002402: fb02 f303 mul.w r3, r2, r3 8002406: 4403 add r3, r0 8002408: 18ca adds r2, r1, r3 800240a: 68bb ldr r3, [r7, #8] 800240c: 4413 add r3, r2 800240e: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8002410: 4b7d ldr r3, [pc, #500] ; (8002608 ) 8002412: 681b ldr r3, [r3, #0] 8002414: 69fa ldr r2, [r7, #28] 8002416: ee07 2a90 vmov s15, r2 800241a: eef8 7a67 vcvt.f32.u32 s15, s15 800241e: 4a7b ldr r2, [pc, #492] ; (800260c ) 8002420: 015b lsls r3, r3, #5 8002422: 4413 add r3, r2 8002424: 3318 adds r3, #24 8002426: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 800242a: 687b ldr r3, [r7, #4] 800242c: 2b01 cmp r3, #1 800242e: d112 bne.n 8002456 8002430: 4b75 ldr r3, [pc, #468] ; (8002608 ) 8002432: 681b ldr r3, [r3, #0] 8002434: 4975 ldr r1, [pc, #468] ; (800260c ) 8002436: 015a lsls r2, r3, #5 8002438: 440a add r2, r1 800243a: 3218 adds r2, #24 800243c: edd2 7a00 vldr s15, [r2] 8002440: ed9f 7a78 vldr s14, [pc, #480] ; 8002624 8002444: ee67 7a87 vmul.f32 s15, s15, s14 8002448: 4a70 ldr r2, [pc, #448] ; (800260c ) 800244a: 015b lsls r3, r3, #5 800244c: 4413 add r3, r2 800244e: 3318 adds r3, #24 8002450: edc3 7a00 vstr s15, [r3] 8002454: e040 b.n 80024d8 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8002456: 687b ldr r3, [r7, #4] 8002458: 2b02 cmp r3, #2 800245a: d112 bne.n 8002482 800245c: 4b6a ldr r3, [pc, #424] ; (8002608 ) 800245e: 681b ldr r3, [r3, #0] 8002460: 496a ldr r1, [pc, #424] ; (800260c ) 8002462: 015a lsls r2, r3, #5 8002464: 440a add r2, r1 8002466: 3218 adds r2, #24 8002468: edd2 7a00 vldr s15, [r2] 800246c: ed9f 7a6e vldr s14, [pc, #440] ; 8002628 8002470: ee67 7a87 vmul.f32 s15, s15, s14 8002474: 4a65 ldr r2, [pc, #404] ; (800260c ) 8002476: 015b lsls r3, r3, #5 8002478: 4413 add r3, r2 800247a: 3318 adds r3, #24 800247c: edc3 7a00 vstr s15, [r3] 8002480: e02a b.n 80024d8 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8002482: 687b ldr r3, [r7, #4] 8002484: 2b03 cmp r3, #3 8002486: d112 bne.n 80024ae 8002488: 4b5f ldr r3, [pc, #380] ; (8002608 ) 800248a: 681b ldr r3, [r3, #0] 800248c: 495f ldr r1, [pc, #380] ; (800260c ) 800248e: 015a lsls r2, r3, #5 8002490: 440a add r2, r1 8002492: 3218 adds r2, #24 8002494: edd2 7a00 vldr s15, [r2] 8002498: ed9f 7a64 vldr s14, [pc, #400] ; 800262c 800249c: ee67 7a87 vmul.f32 s15, s15, s14 80024a0: 4a5a ldr r2, [pc, #360] ; (800260c ) 80024a2: 015b lsls r3, r3, #5 80024a4: 4413 add r3, r2 80024a6: 3318 adds r3, #24 80024a8: edc3 7a00 vstr s15, [r3] 80024ac: e014 b.n 80024d8 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80024ae: 687b ldr r3, [r7, #4] 80024b0: 2b04 cmp r3, #4 80024b2: d111 bne.n 80024d8 80024b4: 4b54 ldr r3, [pc, #336] ; (8002608 ) 80024b6: 681b ldr r3, [r3, #0] 80024b8: 4954 ldr r1, [pc, #336] ; (800260c ) 80024ba: 015a lsls r2, r3, #5 80024bc: 440a add r2, r1 80024be: 3218 adds r2, #24 80024c0: edd2 7a00 vldr s15, [r2] 80024c4: ed9f 7a52 vldr s14, [pc, #328] ; 8002610 80024c8: ee67 7a87 vmul.f32 s15, s15, s14 80024cc: 4a4f ldr r2, [pc, #316] ; (800260c ) 80024ce: 015b lsls r3, r3, #5 80024d0: 4413 add r3, r2 80024d2: 3318 adds r3, #24 80024d4: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80024d8: 4b4b ldr r3, [pc, #300] ; (8002608 ) 80024da: 681b ldr r3, [r3, #0] 80024dc: 4a4b ldr r2, [pc, #300] ; (800260c ) 80024de: 015b lsls r3, r3, #5 80024e0: 4413 add r3, r2 80024e2: 3318 adds r3, #24 80024e4: edd3 7a00 vldr s15, [r3] 80024e8: eef5 7ac0 vcmpe.f32 s15, #0.0 80024ec: eef1 fa10 vmrs APSR_nzcv, fpscr 80024f0: d807 bhi.n 8002502 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80024f2: 4b45 ldr r3, [pc, #276] ; (8002608 ) 80024f4: 681b ldr r3, [r3, #0] 80024f6: 4a45 ldr r2, [pc, #276] ; (800260c ) 80024f8: 015b lsls r3, r3, #5 80024fa: 4413 add r3, r2 80024fc: 3318 adds r3, #24 80024fe: 4a45 ldr r2, [pc, #276] ; (8002614 ) 8002500: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8002502: 4b41 ldr r3, [pc, #260] ; (8002608 ) 8002504: 681b ldr r3, [r3, #0] 8002506: 4a41 ldr r2, [pc, #260] ; (800260c ) 8002508: 015b lsls r3, r3, #5 800250a: 4413 add r3, r2 800250c: 3318 adds r3, #24 800250e: edd3 7a00 vldr s15, [r3] 8002512: ed9f 7a41 vldr s14, [pc, #260] ; 8002618 8002516: eef4 7ac7 vcmpe.f32 s15, s14 800251a: eef1 fa10 vmrs APSR_nzcv, fpscr 800251e: db07 blt.n 8002530 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8002520: 4b39 ldr r3, [pc, #228] ; (8002608 ) 8002522: 681b ldr r3, [r3, #0] 8002524: 4a39 ldr r2, [pc, #228] ; (800260c ) 8002526: 015b lsls r3, r3, #5 8002528: 4413 add r3, r2 800252a: 3318 adds r3, #24 800252c: 4a3b ldr r2, [pc, #236] ; (800261c ) 800252e: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8002530: 4b35 ldr r3, [pc, #212] ; (8002608 ) 8002532: 681b ldr r3, [r3, #0] 8002534: 4a35 ldr r2, [pc, #212] ; (800260c ) 8002536: 015b lsls r3, r3, #5 8002538: 4413 add r3, r2 800253a: 3318 adds r3, #24 800253c: edd3 7a00 vldr s15, [r3] 8002540: eeb0 0a67 vmov.f32 s0, s15 8002544: f001 fb48 bl 8003bd8 } 8002548: e332 b.n 8002bb0 if(menupos == Kiks) 800254a: 4b35 ldr r3, [pc, #212] ; (8002620 ) 800254c: 781b ldrb r3, [r3, #0] 800254e: b2db uxtb r3, r3 8002550: 2b08 cmp r3, #8 8002552: f040 80d1 bne.w 80026f8 if(iks < 9) { 8002556: 693b ldr r3, [r7, #16] 8002558: 2b08 cmp r3, #8 800255a: d802 bhi.n 8002562 iks++; 800255c: 693b ldr r3, [r7, #16] 800255e: 3301 adds r3, #1 8002560: 613b str r3, [r7, #16] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8002562: 69bb ldr r3, [r7, #24] 8002564: f242 7210 movw r2, #10000 ; 0x2710 8002568: fb02 f203 mul.w r2, r2, r3 800256c: 697b ldr r3, [r7, #20] 800256e: f44f 717a mov.w r1, #1000 ; 0x3e8 8002572: fb01 f303 mul.w r3, r1, r3 8002576: 18d1 adds r1, r2, r3 8002578: 68fa ldr r2, [r7, #12] 800257a: 4613 mov r3, r2 800257c: 009b lsls r3, r3, #2 800257e: 4413 add r3, r2 8002580: 005b lsls r3, r3, #1 8002582: 4618 mov r0, r3 8002584: 693b ldr r3, [r7, #16] 8002586: 2264 movs r2, #100 ; 0x64 8002588: fb02 f303 mul.w r3, r2, r3 800258c: 4403 add r3, r0 800258e: 18ca adds r2, r1, r3 8002590: 68bb ldr r3, [r7, #8] 8002592: 4413 add r3, r2 8002594: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8002596: 4b1c ldr r3, [pc, #112] ; (8002608 ) 8002598: 681b ldr r3, [r3, #0] 800259a: 69fa ldr r2, [r7, #28] 800259c: ee07 2a90 vmov s15, r2 80025a0: eef8 7a67 vcvt.f32.u32 s15, s15 80025a4: 4a19 ldr r2, [pc, #100] ; (800260c ) 80025a6: 015b lsls r3, r3, #5 80025a8: 4413 add r3, r2 80025aa: 3318 adds r3, #24 80025ac: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80025b0: 687b ldr r3, [r7, #4] 80025b2: 2b01 cmp r3, #1 80025b4: d112 bne.n 80025dc 80025b6: 4b14 ldr r3, [pc, #80] ; (8002608 ) 80025b8: 681b ldr r3, [r3, #0] 80025ba: 4914 ldr r1, [pc, #80] ; (800260c ) 80025bc: 015a lsls r2, r3, #5 80025be: 440a add r2, r1 80025c0: 3218 adds r2, #24 80025c2: edd2 7a00 vldr s15, [r2] 80025c6: ed9f 7a17 vldr s14, [pc, #92] ; 8002624 80025ca: ee67 7a87 vmul.f32 s15, s15, s14 80025ce: 4a0f ldr r2, [pc, #60] ; (800260c ) 80025d0: 015b lsls r3, r3, #5 80025d2: 4413 add r3, r2 80025d4: 3318 adds r3, #24 80025d6: edc3 7a00 vstr s15, [r3] 80025da: e054 b.n 8002686 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80025dc: 687b ldr r3, [r7, #4] 80025de: 2b02 cmp r3, #2 80025e0: d126 bne.n 8002630 80025e2: 4b09 ldr r3, [pc, #36] ; (8002608 ) 80025e4: 681b ldr r3, [r3, #0] 80025e6: 4909 ldr r1, [pc, #36] ; (800260c ) 80025e8: 015a lsls r2, r3, #5 80025ea: 440a add r2, r1 80025ec: 3218 adds r2, #24 80025ee: edd2 7a00 vldr s15, [r2] 80025f2: ed9f 7a0d vldr s14, [pc, #52] ; 8002628 80025f6: ee67 7a87 vmul.f32 s15, s15, s14 80025fa: 4a04 ldr r2, [pc, #16] ; (800260c ) 80025fc: 015b lsls r3, r3, #5 80025fe: 4413 add r3, r2 8002600: 3318 adds r3, #24 8002602: edc3 7a00 vstr s15, [r3] 8002606: e03e b.n 8002686 8002608: 2006b2d0 .word 0x2006b2d0 800260c: 2006b510 .word 0x2006b510 8002610: 38d1b717 .word 0x38d1b717 8002614: 38d1b717 .word 0x38d1b717 8002618: 47c35000 .word 0x47c35000 800261c: 47c34f80 .word 0x47c34f80 8002620: 20020010 .word 0x20020010 8002624: 3dcccccd .word 0x3dcccccd 8002628: 3c23d70a .word 0x3c23d70a 800262c: 3a83126f .word 0x3a83126f else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8002630: 687b ldr r3, [r7, #4] 8002632: 2b03 cmp r3, #3 8002634: d112 bne.n 800265c 8002636: 4bb6 ldr r3, [pc, #728] ; (8002910 ) 8002638: 681b ldr r3, [r3, #0] 800263a: 49b6 ldr r1, [pc, #728] ; (8002914 ) 800263c: 015a lsls r2, r3, #5 800263e: 440a add r2, r1 8002640: 3218 adds r2, #24 8002642: edd2 7a00 vldr s15, [r2] 8002646: ed9f 7ab4 vldr s14, [pc, #720] ; 8002918 800264a: ee67 7a87 vmul.f32 s15, s15, s14 800264e: 4ab1 ldr r2, [pc, #708] ; (8002914 ) 8002650: 015b lsls r3, r3, #5 8002652: 4413 add r3, r2 8002654: 3318 adds r3, #24 8002656: edc3 7a00 vstr s15, [r3] 800265a: e014 b.n 8002686 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 800265c: 687b ldr r3, [r7, #4] 800265e: 2b04 cmp r3, #4 8002660: d111 bne.n 8002686 8002662: 4bab ldr r3, [pc, #684] ; (8002910 ) 8002664: 681b ldr r3, [r3, #0] 8002666: 49ab ldr r1, [pc, #684] ; (8002914 ) 8002668: 015a lsls r2, r3, #5 800266a: 440a add r2, r1 800266c: 3218 adds r2, #24 800266e: edd2 7a00 vldr s15, [r2] 8002672: ed9f 7aaa vldr s14, [pc, #680] ; 800291c 8002676: ee67 7a87 vmul.f32 s15, s15, s14 800267a: 4aa6 ldr r2, [pc, #664] ; (8002914 ) 800267c: 015b lsls r3, r3, #5 800267e: 4413 add r3, r2 8002680: 3318 adds r3, #24 8002682: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8002686: 4ba2 ldr r3, [pc, #648] ; (8002910 ) 8002688: 681b ldr r3, [r3, #0] 800268a: 4aa2 ldr r2, [pc, #648] ; (8002914 ) 800268c: 015b lsls r3, r3, #5 800268e: 4413 add r3, r2 8002690: 3318 adds r3, #24 8002692: edd3 7a00 vldr s15, [r3] 8002696: eef5 7ac0 vcmpe.f32 s15, #0.0 800269a: eef1 fa10 vmrs APSR_nzcv, fpscr 800269e: d807 bhi.n 80026b0 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80026a0: 4b9b ldr r3, [pc, #620] ; (8002910 ) 80026a2: 681b ldr r3, [r3, #0] 80026a4: 4a9b ldr r2, [pc, #620] ; (8002914 ) 80026a6: 015b lsls r3, r3, #5 80026a8: 4413 add r3, r2 80026aa: 3318 adds r3, #24 80026ac: 4a9c ldr r2, [pc, #624] ; (8002920 ) 80026ae: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 80026b0: 4b97 ldr r3, [pc, #604] ; (8002910 ) 80026b2: 681b ldr r3, [r3, #0] 80026b4: 4a97 ldr r2, [pc, #604] ; (8002914 ) 80026b6: 015b lsls r3, r3, #5 80026b8: 4413 add r3, r2 80026ba: 3318 adds r3, #24 80026bc: edd3 7a00 vldr s15, [r3] 80026c0: ed9f 7a98 vldr s14, [pc, #608] ; 8002924 80026c4: eef4 7ac7 vcmpe.f32 s15, s14 80026c8: eef1 fa10 vmrs APSR_nzcv, fpscr 80026cc: db07 blt.n 80026de pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 80026ce: 4b90 ldr r3, [pc, #576] ; (8002910 ) 80026d0: 681b ldr r3, [r3, #0] 80026d2: 4a90 ldr r2, [pc, #576] ; (8002914 ) 80026d4: 015b lsls r3, r3, #5 80026d6: 4413 add r3, r2 80026d8: 3318 adds r3, #24 80026da: 4a93 ldr r2, [pc, #588] ; (8002928 ) 80026dc: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80026de: 4b8c ldr r3, [pc, #560] ; (8002910 ) 80026e0: 681b ldr r3, [r3, #0] 80026e2: 4a8c ldr r2, [pc, #560] ; (8002914 ) 80026e4: 015b lsls r3, r3, #5 80026e6: 4413 add r3, r2 80026e8: 3318 adds r3, #24 80026ea: edd3 7a00 vldr s15, [r3] 80026ee: eeb0 0a67 vmov.f32 s0, s15 80026f2: f001 fa71 bl 8003bd8 } 80026f6: e25b b.n 8002bb0 if(menupos == Kikd) 80026f8: 4b8c ldr r3, [pc, #560] ; (800292c ) 80026fa: 781b ldrb r3, [r3, #0] 80026fc: b2db uxtb r3, r3 80026fe: 2b09 cmp r3, #9 8002700: f040 80bd bne.w 800287e if(ikd < 9) { 8002704: 68fb ldr r3, [r7, #12] 8002706: 2b08 cmp r3, #8 8002708: d802 bhi.n 8002710 ikd++; 800270a: 68fb ldr r3, [r7, #12] 800270c: 3301 adds r3, #1 800270e: 60fb str r3, [r7, #12] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8002710: 69bb ldr r3, [r7, #24] 8002712: f242 7210 movw r2, #10000 ; 0x2710 8002716: fb02 f203 mul.w r2, r2, r3 800271a: 697b ldr r3, [r7, #20] 800271c: f44f 717a mov.w r1, #1000 ; 0x3e8 8002720: fb01 f303 mul.w r3, r1, r3 8002724: 18d1 adds r1, r2, r3 8002726: 68fa ldr r2, [r7, #12] 8002728: 4613 mov r3, r2 800272a: 009b lsls r3, r3, #2 800272c: 4413 add r3, r2 800272e: 005b lsls r3, r3, #1 8002730: 4618 mov r0, r3 8002732: 693b ldr r3, [r7, #16] 8002734: 2264 movs r2, #100 ; 0x64 8002736: fb02 f303 mul.w r3, r2, r3 800273a: 4403 add r3, r0 800273c: 18ca adds r2, r1, r3 800273e: 68bb ldr r3, [r7, #8] 8002740: 4413 add r3, r2 8002742: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8002744: 4b72 ldr r3, [pc, #456] ; (8002910 ) 8002746: 681b ldr r3, [r3, #0] 8002748: 69fa ldr r2, [r7, #28] 800274a: ee07 2a90 vmov s15, r2 800274e: eef8 7a67 vcvt.f32.u32 s15, s15 8002752: 4a70 ldr r2, [pc, #448] ; (8002914 ) 8002754: 015b lsls r3, r3, #5 8002756: 4413 add r3, r2 8002758: 3318 adds r3, #24 800275a: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 800275e: 687b ldr r3, [r7, #4] 8002760: 2b01 cmp r3, #1 8002762: d112 bne.n 800278a 8002764: 4b6a ldr r3, [pc, #424] ; (8002910 ) 8002766: 681b ldr r3, [r3, #0] 8002768: 496a ldr r1, [pc, #424] ; (8002914 ) 800276a: 015a lsls r2, r3, #5 800276c: 440a add r2, r1 800276e: 3218 adds r2, #24 8002770: edd2 7a00 vldr s15, [r2] 8002774: ed9f 7a6e vldr s14, [pc, #440] ; 8002930 8002778: ee67 7a87 vmul.f32 s15, s15, s14 800277c: 4a65 ldr r2, [pc, #404] ; (8002914 ) 800277e: 015b lsls r3, r3, #5 8002780: 4413 add r3, r2 8002782: 3318 adds r3, #24 8002784: edc3 7a00 vstr s15, [r3] 8002788: e040 b.n 800280c else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 800278a: 687b ldr r3, [r7, #4] 800278c: 2b02 cmp r3, #2 800278e: d112 bne.n 80027b6 8002790: 4b5f ldr r3, [pc, #380] ; (8002910 ) 8002792: 681b ldr r3, [r3, #0] 8002794: 495f ldr r1, [pc, #380] ; (8002914 ) 8002796: 015a lsls r2, r3, #5 8002798: 440a add r2, r1 800279a: 3218 adds r2, #24 800279c: edd2 7a00 vldr s15, [r2] 80027a0: ed9f 7a64 vldr s14, [pc, #400] ; 8002934 80027a4: ee67 7a87 vmul.f32 s15, s15, s14 80027a8: 4a5a ldr r2, [pc, #360] ; (8002914 ) 80027aa: 015b lsls r3, r3, #5 80027ac: 4413 add r3, r2 80027ae: 3318 adds r3, #24 80027b0: edc3 7a00 vstr s15, [r3] 80027b4: e02a b.n 800280c else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80027b6: 687b ldr r3, [r7, #4] 80027b8: 2b03 cmp r3, #3 80027ba: d112 bne.n 80027e2 80027bc: 4b54 ldr r3, [pc, #336] ; (8002910 ) 80027be: 681b ldr r3, [r3, #0] 80027c0: 4954 ldr r1, [pc, #336] ; (8002914 ) 80027c2: 015a lsls r2, r3, #5 80027c4: 440a add r2, r1 80027c6: 3218 adds r2, #24 80027c8: edd2 7a00 vldr s15, [r2] 80027cc: ed9f 7a52 vldr s14, [pc, #328] ; 8002918 80027d0: ee67 7a87 vmul.f32 s15, s15, s14 80027d4: 4a4f ldr r2, [pc, #316] ; (8002914 ) 80027d6: 015b lsls r3, r3, #5 80027d8: 4413 add r3, r2 80027da: 3318 adds r3, #24 80027dc: edc3 7a00 vstr s15, [r3] 80027e0: e014 b.n 800280c else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80027e2: 687b ldr r3, [r7, #4] 80027e4: 2b04 cmp r3, #4 80027e6: d111 bne.n 800280c 80027e8: 4b49 ldr r3, [pc, #292] ; (8002910 ) 80027ea: 681b ldr r3, [r3, #0] 80027ec: 4949 ldr r1, [pc, #292] ; (8002914 ) 80027ee: 015a lsls r2, r3, #5 80027f0: 440a add r2, r1 80027f2: 3218 adds r2, #24 80027f4: edd2 7a00 vldr s15, [r2] 80027f8: ed9f 7a48 vldr s14, [pc, #288] ; 800291c 80027fc: ee67 7a87 vmul.f32 s15, s15, s14 8002800: 4a44 ldr r2, [pc, #272] ; (8002914 ) 8002802: 015b lsls r3, r3, #5 8002804: 4413 add r3, r2 8002806: 3318 adds r3, #24 8002808: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 800280c: 4b40 ldr r3, [pc, #256] ; (8002910 ) 800280e: 681b ldr r3, [r3, #0] 8002810: 4a40 ldr r2, [pc, #256] ; (8002914 ) 8002812: 015b lsls r3, r3, #5 8002814: 4413 add r3, r2 8002816: 3318 adds r3, #24 8002818: edd3 7a00 vldr s15, [r3] 800281c: eef5 7ac0 vcmpe.f32 s15, #0.0 8002820: eef1 fa10 vmrs APSR_nzcv, fpscr 8002824: d807 bhi.n 8002836 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8002826: 4b3a ldr r3, [pc, #232] ; (8002910 ) 8002828: 681b ldr r3, [r3, #0] 800282a: 4a3a ldr r2, [pc, #232] ; (8002914 ) 800282c: 015b lsls r3, r3, #5 800282e: 4413 add r3, r2 8002830: 3318 adds r3, #24 8002832: 4a3b ldr r2, [pc, #236] ; (8002920 ) 8002834: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8002836: 4b36 ldr r3, [pc, #216] ; (8002910 ) 8002838: 681b ldr r3, [r3, #0] 800283a: 4a36 ldr r2, [pc, #216] ; (8002914 ) 800283c: 015b lsls r3, r3, #5 800283e: 4413 add r3, r2 8002840: 3318 adds r3, #24 8002842: edd3 7a00 vldr s15, [r3] 8002846: ed9f 7a37 vldr s14, [pc, #220] ; 8002924 800284a: eef4 7ac7 vcmpe.f32 s15, s14 800284e: eef1 fa10 vmrs APSR_nzcv, fpscr 8002852: db07 blt.n 8002864 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8002854: 4b2e ldr r3, [pc, #184] ; (8002910 ) 8002856: 681b ldr r3, [r3, #0] 8002858: 4a2e ldr r2, [pc, #184] ; (8002914 ) 800285a: 015b lsls r3, r3, #5 800285c: 4413 add r3, r2 800285e: 3318 adds r3, #24 8002860: 4a31 ldr r2, [pc, #196] ; (8002928 ) 8002862: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8002864: 4b2a ldr r3, [pc, #168] ; (8002910 ) 8002866: 681b ldr r3, [r3, #0] 8002868: 4a2a ldr r2, [pc, #168] ; (8002914 ) 800286a: 015b lsls r3, r3, #5 800286c: 4413 add r3, r2 800286e: 3318 adds r3, #24 8002870: edd3 7a00 vldr s15, [r3] 8002874: eeb0 0a67 vmov.f32 s0, s15 8002878: f001 f9ae bl 8003bd8 } 800287c: e198 b.n 8002bb0 if(menupos == Kike) 800287e: 4b2b ldr r3, [pc, #172] ; (800292c ) 8002880: 781b ldrb r3, [r3, #0] 8002882: b2db uxtb r3, r3 8002884: 2b0a cmp r3, #10 8002886: f040 80d1 bne.w 8002a2c if(ike < 9) { 800288a: 68bb ldr r3, [r7, #8] 800288c: 2b08 cmp r3, #8 800288e: d802 bhi.n 8002896 ike++; 8002890: 68bb ldr r3, [r7, #8] 8002892: 3301 adds r3, #1 8002894: 60bb str r3, [r7, #8] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8002896: 69bb ldr r3, [r7, #24] 8002898: f242 7210 movw r2, #10000 ; 0x2710 800289c: fb02 f203 mul.w r2, r2, r3 80028a0: 697b ldr r3, [r7, #20] 80028a2: f44f 717a mov.w r1, #1000 ; 0x3e8 80028a6: fb01 f303 mul.w r3, r1, r3 80028aa: 18d1 adds r1, r2, r3 80028ac: 68fa ldr r2, [r7, #12] 80028ae: 4613 mov r3, r2 80028b0: 009b lsls r3, r3, #2 80028b2: 4413 add r3, r2 80028b4: 005b lsls r3, r3, #1 80028b6: 4618 mov r0, r3 80028b8: 693b ldr r3, [r7, #16] 80028ba: 2264 movs r2, #100 ; 0x64 80028bc: fb02 f303 mul.w r3, r2, r3 80028c0: 4403 add r3, r0 80028c2: 18ca adds r2, r1, r3 80028c4: 68bb ldr r3, [r7, #8] 80028c6: 4413 add r3, r2 80028c8: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80028ca: 4b11 ldr r3, [pc, #68] ; (8002910 ) 80028cc: 681b ldr r3, [r3, #0] 80028ce: 69fa ldr r2, [r7, #28] 80028d0: ee07 2a90 vmov s15, r2 80028d4: eef8 7a67 vcvt.f32.u32 s15, s15 80028d8: 4a0e ldr r2, [pc, #56] ; (8002914 ) 80028da: 015b lsls r3, r3, #5 80028dc: 4413 add r3, r2 80028de: 3318 adds r3, #24 80028e0: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80028e4: 687b ldr r3, [r7, #4] 80028e6: 2b01 cmp r3, #1 80028e8: d126 bne.n 8002938 80028ea: 4b09 ldr r3, [pc, #36] ; (8002910 ) 80028ec: 681b ldr r3, [r3, #0] 80028ee: 4909 ldr r1, [pc, #36] ; (8002914 ) 80028f0: 015a lsls r2, r3, #5 80028f2: 440a add r2, r1 80028f4: 3218 adds r2, #24 80028f6: edd2 7a00 vldr s15, [r2] 80028fa: ed9f 7a0d vldr s14, [pc, #52] ; 8002930 80028fe: ee67 7a87 vmul.f32 s15, s15, s14 8002902: 4a04 ldr r2, [pc, #16] ; (8002914 ) 8002904: 015b lsls r3, r3, #5 8002906: 4413 add r3, r2 8002908: 3318 adds r3, #24 800290a: edc3 7a00 vstr s15, [r3] 800290e: e054 b.n 80029ba 8002910: 2006b2d0 .word 0x2006b2d0 8002914: 2006b510 .word 0x2006b510 8002918: 3a83126f .word 0x3a83126f 800291c: 38d1b717 .word 0x38d1b717 8002920: 38d1b717 .word 0x38d1b717 8002924: 47c35000 .word 0x47c35000 8002928: 47c34f80 .word 0x47c34f80 800292c: 20020010 .word 0x20020010 8002930: 3dcccccd .word 0x3dcccccd 8002934: 3c23d70a .word 0x3c23d70a else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8002938: 687b ldr r3, [r7, #4] 800293a: 2b02 cmp r3, #2 800293c: d112 bne.n 8002964 800293e: 4b9e ldr r3, [pc, #632] ; (8002bb8 ) 8002940: 681b ldr r3, [r3, #0] 8002942: 499e ldr r1, [pc, #632] ; (8002bbc ) 8002944: 015a lsls r2, r3, #5 8002946: 440a add r2, r1 8002948: 3218 adds r2, #24 800294a: edd2 7a00 vldr s15, [r2] 800294e: ed9f 7a9c vldr s14, [pc, #624] ; 8002bc0 8002952: ee67 7a87 vmul.f32 s15, s15, s14 8002956: 4a99 ldr r2, [pc, #612] ; (8002bbc ) 8002958: 015b lsls r3, r3, #5 800295a: 4413 add r3, r2 800295c: 3318 adds r3, #24 800295e: edc3 7a00 vstr s15, [r3] 8002962: e02a b.n 80029ba else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8002964: 687b ldr r3, [r7, #4] 8002966: 2b03 cmp r3, #3 8002968: d112 bne.n 8002990 800296a: 4b93 ldr r3, [pc, #588] ; (8002bb8 ) 800296c: 681b ldr r3, [r3, #0] 800296e: 4993 ldr r1, [pc, #588] ; (8002bbc ) 8002970: 015a lsls r2, r3, #5 8002972: 440a add r2, r1 8002974: 3218 adds r2, #24 8002976: edd2 7a00 vldr s15, [r2] 800297a: ed9f 7a92 vldr s14, [pc, #584] ; 8002bc4 800297e: ee67 7a87 vmul.f32 s15, s15, s14 8002982: 4a8e ldr r2, [pc, #568] ; (8002bbc ) 8002984: 015b lsls r3, r3, #5 8002986: 4413 add r3, r2 8002988: 3318 adds r3, #24 800298a: edc3 7a00 vstr s15, [r3] 800298e: e014 b.n 80029ba else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8002990: 687b ldr r3, [r7, #4] 8002992: 2b04 cmp r3, #4 8002994: d111 bne.n 80029ba 8002996: 4b88 ldr r3, [pc, #544] ; (8002bb8 ) 8002998: 681b ldr r3, [r3, #0] 800299a: 4988 ldr r1, [pc, #544] ; (8002bbc ) 800299c: 015a lsls r2, r3, #5 800299e: 440a add r2, r1 80029a0: 3218 adds r2, #24 80029a2: edd2 7a00 vldr s15, [r2] 80029a6: ed9f 7a88 vldr s14, [pc, #544] ; 8002bc8 80029aa: ee67 7a87 vmul.f32 s15, s15, s14 80029ae: 4a83 ldr r2, [pc, #524] ; (8002bbc ) 80029b0: 015b lsls r3, r3, #5 80029b2: 4413 add r3, r2 80029b4: 3318 adds r3, #24 80029b6: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80029ba: 4b7f ldr r3, [pc, #508] ; (8002bb8 ) 80029bc: 681b ldr r3, [r3, #0] 80029be: 4a7f ldr r2, [pc, #508] ; (8002bbc ) 80029c0: 015b lsls r3, r3, #5 80029c2: 4413 add r3, r2 80029c4: 3318 adds r3, #24 80029c6: edd3 7a00 vldr s15, [r3] 80029ca: eef5 7ac0 vcmpe.f32 s15, #0.0 80029ce: eef1 fa10 vmrs APSR_nzcv, fpscr 80029d2: d807 bhi.n 80029e4 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80029d4: 4b78 ldr r3, [pc, #480] ; (8002bb8 ) 80029d6: 681b ldr r3, [r3, #0] 80029d8: 4a78 ldr r2, [pc, #480] ; (8002bbc ) 80029da: 015b lsls r3, r3, #5 80029dc: 4413 add r3, r2 80029de: 3318 adds r3, #24 80029e0: 4a7a ldr r2, [pc, #488] ; (8002bcc ) 80029e2: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 80029e4: 4b74 ldr r3, [pc, #464] ; (8002bb8 ) 80029e6: 681b ldr r3, [r3, #0] 80029e8: 4a74 ldr r2, [pc, #464] ; (8002bbc ) 80029ea: 015b lsls r3, r3, #5 80029ec: 4413 add r3, r2 80029ee: 3318 adds r3, #24 80029f0: edd3 7a00 vldr s15, [r3] 80029f4: ed9f 7a76 vldr s14, [pc, #472] ; 8002bd0 80029f8: eef4 7ac7 vcmpe.f32 s15, s14 80029fc: eef1 fa10 vmrs APSR_nzcv, fpscr 8002a00: db07 blt.n 8002a12 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8002a02: 4b6d ldr r3, [pc, #436] ; (8002bb8 ) 8002a04: 681b ldr r3, [r3, #0] 8002a06: 4a6d ldr r2, [pc, #436] ; (8002bbc ) 8002a08: 015b lsls r3, r3, #5 8002a0a: 4413 add r3, r2 8002a0c: 3318 adds r3, #24 8002a0e: 4a71 ldr r2, [pc, #452] ; (8002bd4 ) 8002a10: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8002a12: 4b69 ldr r3, [pc, #420] ; (8002bb8 ) 8002a14: 681b ldr r3, [r3, #0] 8002a16: 4a69 ldr r2, [pc, #420] ; (8002bbc ) 8002a18: 015b lsls r3, r3, #5 8002a1a: 4413 add r3, r2 8002a1c: 3318 adds r3, #24 8002a1e: edd3 7a00 vldr s15, [r3] 8002a22: eeb0 0a67 vmov.f32 s0, s15 8002a26: f001 f8d7 bl 8003bd8 } 8002a2a: e0c1 b.n 8002bb0 if(menupos == Kpt) 8002a2c: 4b6a ldr r3, [pc, #424] ; (8002bd8 ) 8002a2e: 781b ldrb r3, [r3, #0] 8002a30: b2db uxtb r3, r3 8002a32: 2b0b cmp r3, #11 8002a34: f040 80bc bne.w 8002bb0 if(ipt) { 8002a38: 687b ldr r3, [r7, #4] 8002a3a: 2b00 cmp r3, #0 8002a3c: d002 beq.n 8002a44 ipt--; 8002a3e: 687b ldr r3, [r7, #4] 8002a40: 3b01 subs r3, #1 8002a42: 607b str r3, [r7, #4] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8002a44: 69bb ldr r3, [r7, #24] 8002a46: f242 7210 movw r2, #10000 ; 0x2710 8002a4a: fb02 f203 mul.w r2, r2, r3 8002a4e: 697b ldr r3, [r7, #20] 8002a50: f44f 717a mov.w r1, #1000 ; 0x3e8 8002a54: fb01 f303 mul.w r3, r1, r3 8002a58: 18d1 adds r1, r2, r3 8002a5a: 68fa ldr r2, [r7, #12] 8002a5c: 4613 mov r3, r2 8002a5e: 009b lsls r3, r3, #2 8002a60: 4413 add r3, r2 8002a62: 005b lsls r3, r3, #1 8002a64: 4618 mov r0, r3 8002a66: 693b ldr r3, [r7, #16] 8002a68: 2264 movs r2, #100 ; 0x64 8002a6a: fb02 f303 mul.w r3, r2, r3 8002a6e: 4403 add r3, r0 8002a70: 18ca adds r2, r1, r3 8002a72: 68bb ldr r3, [r7, #8] 8002a74: 4413 add r3, r2 8002a76: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8002a78: 4b4f ldr r3, [pc, #316] ; (8002bb8 ) 8002a7a: 681b ldr r3, [r3, #0] 8002a7c: 69fa ldr r2, [r7, #28] 8002a7e: ee07 2a90 vmov s15, r2 8002a82: eef8 7a67 vcvt.f32.u32 s15, s15 8002a86: 4a4d ldr r2, [pc, #308] ; (8002bbc ) 8002a88: 015b lsls r3, r3, #5 8002a8a: 4413 add r3, r2 8002a8c: 3318 adds r3, #24 8002a8e: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8002a92: 687b ldr r3, [r7, #4] 8002a94: 2b01 cmp r3, #1 8002a96: d112 bne.n 8002abe 8002a98: 4b47 ldr r3, [pc, #284] ; (8002bb8 ) 8002a9a: 681b ldr r3, [r3, #0] 8002a9c: 4947 ldr r1, [pc, #284] ; (8002bbc ) 8002a9e: 015a lsls r2, r3, #5 8002aa0: 440a add r2, r1 8002aa2: 3218 adds r2, #24 8002aa4: edd2 7a00 vldr s15, [r2] 8002aa8: ed9f 7a4c vldr s14, [pc, #304] ; 8002bdc 8002aac: ee67 7a87 vmul.f32 s15, s15, s14 8002ab0: 4a42 ldr r2, [pc, #264] ; (8002bbc ) 8002ab2: 015b lsls r3, r3, #5 8002ab4: 4413 add r3, r2 8002ab6: 3318 adds r3, #24 8002ab8: edc3 7a00 vstr s15, [r3] 8002abc: e040 b.n 8002b40 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8002abe: 687b ldr r3, [r7, #4] 8002ac0: 2b02 cmp r3, #2 8002ac2: d112 bne.n 8002aea 8002ac4: 4b3c ldr r3, [pc, #240] ; (8002bb8 ) 8002ac6: 681b ldr r3, [r3, #0] 8002ac8: 493c ldr r1, [pc, #240] ; (8002bbc ) 8002aca: 015a lsls r2, r3, #5 8002acc: 440a add r2, r1 8002ace: 3218 adds r2, #24 8002ad0: edd2 7a00 vldr s15, [r2] 8002ad4: ed9f 7a3a vldr s14, [pc, #232] ; 8002bc0 8002ad8: ee67 7a87 vmul.f32 s15, s15, s14 8002adc: 4a37 ldr r2, [pc, #220] ; (8002bbc ) 8002ade: 015b lsls r3, r3, #5 8002ae0: 4413 add r3, r2 8002ae2: 3318 adds r3, #24 8002ae4: edc3 7a00 vstr s15, [r3] 8002ae8: e02a b.n 8002b40 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8002aea: 687b ldr r3, [r7, #4] 8002aec: 2b03 cmp r3, #3 8002aee: d112 bne.n 8002b16 8002af0: 4b31 ldr r3, [pc, #196] ; (8002bb8 ) 8002af2: 681b ldr r3, [r3, #0] 8002af4: 4931 ldr r1, [pc, #196] ; (8002bbc ) 8002af6: 015a lsls r2, r3, #5 8002af8: 440a add r2, r1 8002afa: 3218 adds r2, #24 8002afc: edd2 7a00 vldr s15, [r2] 8002b00: ed9f 7a30 vldr s14, [pc, #192] ; 8002bc4 8002b04: ee67 7a87 vmul.f32 s15, s15, s14 8002b08: 4a2c ldr r2, [pc, #176] ; (8002bbc ) 8002b0a: 015b lsls r3, r3, #5 8002b0c: 4413 add r3, r2 8002b0e: 3318 adds r3, #24 8002b10: edc3 7a00 vstr s15, [r3] 8002b14: e014 b.n 8002b40 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8002b16: 687b ldr r3, [r7, #4] 8002b18: 2b04 cmp r3, #4 8002b1a: d111 bne.n 8002b40 8002b1c: 4b26 ldr r3, [pc, #152] ; (8002bb8 ) 8002b1e: 681b ldr r3, [r3, #0] 8002b20: 4926 ldr r1, [pc, #152] ; (8002bbc ) 8002b22: 015a lsls r2, r3, #5 8002b24: 440a add r2, r1 8002b26: 3218 adds r2, #24 8002b28: edd2 7a00 vldr s15, [r2] 8002b2c: ed9f 7a26 vldr s14, [pc, #152] ; 8002bc8 8002b30: ee67 7a87 vmul.f32 s15, s15, s14 8002b34: 4a21 ldr r2, [pc, #132] ; (8002bbc ) 8002b36: 015b lsls r3, r3, #5 8002b38: 4413 add r3, r2 8002b3a: 3318 adds r3, #24 8002b3c: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8002b40: 4b1d ldr r3, [pc, #116] ; (8002bb8 ) 8002b42: 681b ldr r3, [r3, #0] 8002b44: 4a1d ldr r2, [pc, #116] ; (8002bbc ) 8002b46: 015b lsls r3, r3, #5 8002b48: 4413 add r3, r2 8002b4a: 3318 adds r3, #24 8002b4c: edd3 7a00 vldr s15, [r3] 8002b50: eef5 7ac0 vcmpe.f32 s15, #0.0 8002b54: eef1 fa10 vmrs APSR_nzcv, fpscr 8002b58: d807 bhi.n 8002b6a pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8002b5a: 4b17 ldr r3, [pc, #92] ; (8002bb8 ) 8002b5c: 681b ldr r3, [r3, #0] 8002b5e: 4a17 ldr r2, [pc, #92] ; (8002bbc ) 8002b60: 015b lsls r3, r3, #5 8002b62: 4413 add r3, r2 8002b64: 3318 adds r3, #24 8002b66: 4a19 ldr r2, [pc, #100] ; (8002bcc ) 8002b68: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8002b6a: 4b13 ldr r3, [pc, #76] ; (8002bb8 ) 8002b6c: 681b ldr r3, [r3, #0] 8002b6e: 4a13 ldr r2, [pc, #76] ; (8002bbc ) 8002b70: 015b lsls r3, r3, #5 8002b72: 4413 add r3, r2 8002b74: 3318 adds r3, #24 8002b76: edd3 7a00 vldr s15, [r3] 8002b7a: ed9f 7a15 vldr s14, [pc, #84] ; 8002bd0 8002b7e: eef4 7ac7 vcmpe.f32 s15, s14 8002b82: eef1 fa10 vmrs APSR_nzcv, fpscr 8002b86: db07 blt.n 8002b98 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8002b88: 4b0b ldr r3, [pc, #44] ; (8002bb8 ) 8002b8a: 681b ldr r3, [r3, #0] 8002b8c: 4a0b ldr r2, [pc, #44] ; (8002bbc ) 8002b8e: 015b lsls r3, r3, #5 8002b90: 4413 add r3, r2 8002b92: 3318 adds r3, #24 8002b94: 4a0f ldr r2, [pc, #60] ; (8002bd4 ) 8002b96: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8002b98: 4b07 ldr r3, [pc, #28] ; (8002bb8 ) 8002b9a: 681b ldr r3, [r3, #0] 8002b9c: 4a07 ldr r2, [pc, #28] ; (8002bbc ) 8002b9e: 015b lsls r3, r3, #5 8002ba0: 4413 add r3, r2 8002ba2: 3318 adds r3, #24 8002ba4: edd3 7a00 vldr s15, [r3] 8002ba8: eeb0 0a67 vmov.f32 s0, s15 8002bac: f001 f814 bl 8003bd8 } 8002bb0: bf00 nop 8002bb2: 3720 adds r7, #32 8002bb4: 46bd mov sp, r7 8002bb6: bd80 pop {r7, pc} 8002bb8: 2006b2d0 .word 0x2006b2d0 8002bbc: 2006b510 .word 0x2006b510 8002bc0: 3c23d70a .word 0x3c23d70a 8002bc4: 3a83126f .word 0x3a83126f 8002bc8: 38d1b717 .word 0x38d1b717 8002bcc: 38d1b717 .word 0x38d1b717 8002bd0: 47c35000 .word 0x47c35000 8002bd4: 47c34f80 .word 0x47c34f80 8002bd8: 20020010 .word 0x20020010 8002bdc: 3dcccccd .word 0x3dcccccd 08002be0 : void DoKeyDN(void) { 8002be0: b580 push {r7, lr} 8002be2: b088 sub sp, #32 8002be4: af00 add r7, sp, #0 uint32_t s, ikdt, ikt, iks, ikd, ike, ipt; if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 8002be6: 4bc4 ldr r3, [pc, #784] ; (8002ef8 ) 8002be8: 681b ldr r3, [r3, #0] 8002bea: 4ac4 ldr r2, [pc, #784] ; (8002efc ) 8002bec: 015b lsls r3, r3, #5 8002bee: 4413 add r3, r2 8002bf0: 3318 adds r3, #24 8002bf2: edd3 7a00 vldr s15, [r3] 8002bf6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8002bfa: eef4 7ac7 vcmpe.f32 s15, s14 8002bfe: eef1 fa10 vmrs APSR_nzcv, fpscr 8002c02: d517 bpl.n 8002c34 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 8002c04: 4bbc ldr r3, [pc, #752] ; (8002ef8 ) 8002c06: 681b ldr r3, [r3, #0] 8002c08: 4abc ldr r2, [pc, #752] ; (8002efc ) 8002c0a: 015b lsls r3, r3, #5 8002c0c: 4413 add r3, r2 8002c0e: 3318 adds r3, #24 8002c10: edd3 7a00 vldr s15, [r3] 8002c14: ed9f 7aba vldr s14, [pc, #744] ; 8002f00 8002c18: ee67 7a87 vmul.f32 s15, s15, s14 8002c1c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002c20: ee77 7a87 vadd.f32 s15, s15, s14 8002c24: eefc 7ae7 vcvt.u32.f32 s15, s15 8002c28: ee17 3a90 vmov r3, s15 8002c2c: 61fb str r3, [r7, #28] ipt = 4; 8002c2e: 2304 movs r3, #4 8002c30: 607b str r3, [r7, #4] 8002c32: e0b2 b.n 8002d9a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 8002c34: 4bb0 ldr r3, [pc, #704] ; (8002ef8 ) 8002c36: 681b ldr r3, [r3, #0] 8002c38: 4ab0 ldr r2, [pc, #704] ; (8002efc ) 8002c3a: 015b lsls r3, r3, #5 8002c3c: 4413 add r3, r2 8002c3e: 3318 adds r3, #24 8002c40: edd3 7a00 vldr s15, [r3] 8002c44: ed9f 7aaf vldr s14, [pc, #700] ; 8002f04 8002c48: eef4 7ac7 vcmpe.f32 s15, s14 8002c4c: eef1 fa10 vmrs APSR_nzcv, fpscr 8002c50: d517 bpl.n 8002c82 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 8002c52: 4ba9 ldr r3, [pc, #676] ; (8002ef8 ) 8002c54: 681b ldr r3, [r3, #0] 8002c56: 4aa9 ldr r2, [pc, #676] ; (8002efc ) 8002c58: 015b lsls r3, r3, #5 8002c5a: 4413 add r3, r2 8002c5c: 3318 adds r3, #24 8002c5e: edd3 7a00 vldr s15, [r3] 8002c62: ed9f 7aa9 vldr s14, [pc, #676] ; 8002f08 8002c66: ee67 7a87 vmul.f32 s15, s15, s14 8002c6a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002c6e: ee77 7a87 vadd.f32 s15, s15, s14 8002c72: eefc 7ae7 vcvt.u32.f32 s15, s15 8002c76: ee17 3a90 vmov r3, s15 8002c7a: 61fb str r3, [r7, #28] ipt = 3; 8002c7c: 2303 movs r3, #3 8002c7e: 607b str r3, [r7, #4] 8002c80: e08b b.n 8002d9a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 8002c82: 4b9d ldr r3, [pc, #628] ; (8002ef8 ) 8002c84: 681b ldr r3, [r3, #0] 8002c86: 4a9d ldr r2, [pc, #628] ; (8002efc ) 8002c88: 015b lsls r3, r3, #5 8002c8a: 4413 add r3, r2 8002c8c: 3318 adds r3, #24 8002c8e: edd3 7a00 vldr s15, [r3] 8002c92: ed9f 7a9d vldr s14, [pc, #628] ; 8002f08 8002c96: eef4 7ac7 vcmpe.f32 s15, s14 8002c9a: eef1 fa10 vmrs APSR_nzcv, fpscr 8002c9e: d517 bpl.n 8002cd0 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 8002ca0: 4b95 ldr r3, [pc, #596] ; (8002ef8 ) 8002ca2: 681b ldr r3, [r3, #0] 8002ca4: 4a95 ldr r2, [pc, #596] ; (8002efc ) 8002ca6: 015b lsls r3, r3, #5 8002ca8: 4413 add r3, r2 8002caa: 3318 adds r3, #24 8002cac: edd3 7a00 vldr s15, [r3] 8002cb0: ed9f 7a94 vldr s14, [pc, #592] ; 8002f04 8002cb4: ee67 7a87 vmul.f32 s15, s15, s14 8002cb8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002cbc: ee77 7a87 vadd.f32 s15, s15, s14 8002cc0: eefc 7ae7 vcvt.u32.f32 s15, s15 8002cc4: ee17 3a90 vmov r3, s15 8002cc8: 61fb str r3, [r7, #28] ipt = 2; 8002cca: 2302 movs r3, #2 8002ccc: 607b str r3, [r7, #4] 8002cce: e064 b.n 8002d9a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 8002cd0: 4b89 ldr r3, [pc, #548] ; (8002ef8 ) 8002cd2: 681b ldr r3, [r3, #0] 8002cd4: 4a89 ldr r2, [pc, #548] ; (8002efc ) 8002cd6: 015b lsls r3, r3, #5 8002cd8: 4413 add r3, r2 8002cda: 3318 adds r3, #24 8002cdc: edd3 7a00 vldr s15, [r3] 8002ce0: ed9f 7a87 vldr s14, [pc, #540] ; 8002f00 8002ce4: eef4 7ac7 vcmpe.f32 s15, s14 8002ce8: eef1 fa10 vmrs APSR_nzcv, fpscr 8002cec: d517 bpl.n 8002d1e s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 8002cee: 4b82 ldr r3, [pc, #520] ; (8002ef8 ) 8002cf0: 681b ldr r3, [r3, #0] 8002cf2: 4a82 ldr r2, [pc, #520] ; (8002efc ) 8002cf4: 015b lsls r3, r3, #5 8002cf6: 4413 add r3, r2 8002cf8: 3318 adds r3, #24 8002cfa: edd3 7a00 vldr s15, [r3] 8002cfe: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8002d02: ee67 7a87 vmul.f32 s15, s15, s14 8002d06: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002d0a: ee77 7a87 vadd.f32 s15, s15, s14 8002d0e: eefc 7ae7 vcvt.u32.f32 s15, s15 8002d12: ee17 3a90 vmov r3, s15 8002d16: 61fb str r3, [r7, #28] ipt = 1; 8002d18: 2301 movs r3, #1 8002d1a: 607b str r3, [r7, #4] 8002d1c: e03d b.n 8002d9a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 8002d1e: 4b76 ldr r3, [pc, #472] ; (8002ef8 ) 8002d20: 681b ldr r3, [r3, #0] 8002d22: 4a76 ldr r2, [pc, #472] ; (8002efc ) 8002d24: 015b lsls r3, r3, #5 8002d26: 4413 add r3, r2 8002d28: 3318 adds r3, #24 8002d2a: edd3 7a00 vldr s15, [r3] 8002d2e: ed9f 7a77 vldr s14, [pc, #476] ; 8002f0c 8002d32: eef4 7ac7 vcmpe.f32 s15, s14 8002d36: eef1 fa10 vmrs APSR_nzcv, fpscr 8002d3a: d513 bpl.n 8002d64 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 8002d3c: 4b6e ldr r3, [pc, #440] ; (8002ef8 ) 8002d3e: 681b ldr r3, [r3, #0] 8002d40: 4a6e ldr r2, [pc, #440] ; (8002efc ) 8002d42: 015b lsls r3, r3, #5 8002d44: 4413 add r3, r2 8002d46: 3318 adds r3, #24 8002d48: edd3 7a00 vldr s15, [r3] 8002d4c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8002d50: ee77 7a87 vadd.f32 s15, s15, s14 8002d54: eefc 7ae7 vcvt.u32.f32 s15, s15 8002d58: ee17 3a90 vmov r3, s15 8002d5c: 61fb str r3, [r7, #28] ipt = 0; 8002d5e: 2300 movs r3, #0 8002d60: 607b str r3, [r7, #4] 8002d62: e01a b.n 8002d9a } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8002d64: 4b64 ldr r3, [pc, #400] ; (8002ef8 ) 8002d66: 681b ldr r3, [r3, #0] 8002d68: 4a64 ldr r2, [pc, #400] ; (8002efc ) 8002d6a: 015b lsls r3, r3, #5 8002d6c: 4413 add r3, r2 8002d6e: 3318 adds r3, #24 8002d70: edd3 7a00 vldr s15, [r3] 8002d74: ed9f 7a65 vldr s14, [pc, #404] ; 8002f0c 8002d78: eef4 7ac7 vcmpe.f32 s15, s14 8002d7c: eef1 fa10 vmrs APSR_nzcv, fpscr 8002d80: db0b blt.n 8002d9a pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8002d82: 4b5d ldr r3, [pc, #372] ; (8002ef8 ) 8002d84: 681b ldr r3, [r3, #0] 8002d86: 4a5d ldr r2, [pc, #372] ; (8002efc ) 8002d88: 015b lsls r3, r3, #5 8002d8a: 4413 add r3, r2 8002d8c: 3318 adds r3, #24 8002d8e: 4a60 ldr r2, [pc, #384] ; (8002f10 ) 8002d90: 601a str r2, [r3, #0] s = 99999; 8002d92: 4b60 ldr r3, [pc, #384] ; (8002f14 ) 8002d94: 61fb str r3, [r7, #28] ipt = 0; 8002d96: 2300 movs r3, #0 8002d98: 607b str r3, [r7, #4] } ikdt = (s / 10000); 8002d9a: 69fb ldr r3, [r7, #28] 8002d9c: 4a5e ldr r2, [pc, #376] ; (8002f18 ) 8002d9e: fba2 2303 umull r2, r3, r2, r3 8002da2: 0b5b lsrs r3, r3, #13 8002da4: 61bb str r3, [r7, #24] ikt = (s % 10000 / 1000); 8002da6: 69fa ldr r2, [r7, #28] 8002da8: 4b5b ldr r3, [pc, #364] ; (8002f18 ) 8002daa: fba3 1302 umull r1, r3, r3, r2 8002dae: 0b5b lsrs r3, r3, #13 8002db0: f242 7110 movw r1, #10000 ; 0x2710 8002db4: fb01 f303 mul.w r3, r1, r3 8002db8: 1ad3 subs r3, r2, r3 8002dba: 4a58 ldr r2, [pc, #352] ; (8002f1c ) 8002dbc: fba2 2303 umull r2, r3, r2, r3 8002dc0: 099b lsrs r3, r3, #6 8002dc2: 617b str r3, [r7, #20] iks = (s % 10000 % 1000 / 100); 8002dc4: 69fa ldr r2, [r7, #28] 8002dc6: 4b54 ldr r3, [pc, #336] ; (8002f18 ) 8002dc8: fba3 1302 umull r1, r3, r3, r2 8002dcc: 0b5b lsrs r3, r3, #13 8002dce: f242 7110 movw r1, #10000 ; 0x2710 8002dd2: fb01 f303 mul.w r3, r1, r3 8002dd6: 1ad3 subs r3, r2, r3 8002dd8: 4a50 ldr r2, [pc, #320] ; (8002f1c ) 8002dda: fba2 1203 umull r1, r2, r2, r3 8002dde: 0992 lsrs r2, r2, #6 8002de0: f44f 717a mov.w r1, #1000 ; 0x3e8 8002de4: fb01 f202 mul.w r2, r1, r2 8002de8: 1a9a subs r2, r3, r2 8002dea: 4b4d ldr r3, [pc, #308] ; (8002f20 ) 8002dec: fba3 2302 umull r2, r3, r3, r2 8002df0: 095b lsrs r3, r3, #5 8002df2: 613b str r3, [r7, #16] ikd = (s % 10000 % 1000 % 100 / 10); 8002df4: 69fb ldr r3, [r7, #28] 8002df6: 4a48 ldr r2, [pc, #288] ; (8002f18 ) 8002df8: fba2 1203 umull r1, r2, r2, r3 8002dfc: 0b52 lsrs r2, r2, #13 8002dfe: f242 7110 movw r1, #10000 ; 0x2710 8002e02: fb01 f202 mul.w r2, r1, r2 8002e06: 1a9a subs r2, r3, r2 8002e08: 4b44 ldr r3, [pc, #272] ; (8002f1c ) 8002e0a: fba3 1302 umull r1, r3, r3, r2 8002e0e: 099b lsrs r3, r3, #6 8002e10: f44f 717a mov.w r1, #1000 ; 0x3e8 8002e14: fb01 f303 mul.w r3, r1, r3 8002e18: 1ad3 subs r3, r2, r3 8002e1a: 4a41 ldr r2, [pc, #260] ; (8002f20 ) 8002e1c: fba2 1203 umull r1, r2, r2, r3 8002e20: 0952 lsrs r2, r2, #5 8002e22: 2164 movs r1, #100 ; 0x64 8002e24: fb01 f202 mul.w r2, r1, r2 8002e28: 1a9a subs r2, r3, r2 8002e2a: 4b3e ldr r3, [pc, #248] ; (8002f24 ) 8002e2c: fba3 2302 umull r2, r3, r3, r2 8002e30: 08db lsrs r3, r3, #3 8002e32: 60fb str r3, [r7, #12] ike = (s % 10000 % 1000 % 100 % 10); 8002e34: 69fb ldr r3, [r7, #28] 8002e36: 4a38 ldr r2, [pc, #224] ; (8002f18 ) 8002e38: fba2 1203 umull r1, r2, r2, r3 8002e3c: 0b52 lsrs r2, r2, #13 8002e3e: f242 7110 movw r1, #10000 ; 0x2710 8002e42: fb01 f202 mul.w r2, r1, r2 8002e46: 1a9a subs r2, r3, r2 8002e48: 4b34 ldr r3, [pc, #208] ; (8002f1c ) 8002e4a: fba3 1302 umull r1, r3, r3, r2 8002e4e: 099b lsrs r3, r3, #6 8002e50: f44f 717a mov.w r1, #1000 ; 0x3e8 8002e54: fb01 f303 mul.w r3, r1, r3 8002e58: 1ad3 subs r3, r2, r3 8002e5a: 4a31 ldr r2, [pc, #196] ; (8002f20 ) 8002e5c: fba2 1203 umull r1, r2, r2, r3 8002e60: 0952 lsrs r2, r2, #5 8002e62: 2164 movs r1, #100 ; 0x64 8002e64: fb01 f202 mul.w r2, r1, r2 8002e68: 1a9a subs r2, r3, r2 8002e6a: 4b2e ldr r3, [pc, #184] ; (8002f24 ) 8002e6c: fba3 1302 umull r1, r3, r3, r2 8002e70: 08d9 lsrs r1, r3, #3 8002e72: 460b mov r3, r1 8002e74: 009b lsls r3, r3, #2 8002e76: 440b add r3, r1 8002e78: 005b lsls r3, r3, #1 8002e7a: 1ad3 subs r3, r2, r3 8002e7c: 60bb str r3, [r7, #8] if(menupos == Input) 8002e7e: 4b2a ldr r3, [pc, #168] ; (8002f28 ) 8002e80: 781b ldrb r3, [r3, #0] 8002e82: b2db uxtb r3, r3 8002e84: 2b00 cmp r3, #0 8002e86: d158 bne.n 8002f3a { if(focused) 8002e88: 4b28 ldr r3, [pc, #160] ; (8002f2c ) 8002e8a: 781b ldrb r3, [r3, #0] 8002e8c: b2db uxtb r3, r3 8002e8e: 2b00 cmp r3, #0 8002e90: d04e beq.n 8002f30 { if(pardata.amplif[ACTIVE_CHANNEL].IIN > CHARGE) 8002e92: 4b19 ldr r3, [pc, #100] ; (8002ef8 ) 8002e94: 681b ldr r3, [r3, #0] 8002e96: 4a19 ldr r2, [pc, #100] ; (8002efc ) 8002e98: 015b lsls r3, r3, #5 8002e9a: 4413 add r3, r2 8002e9c: 881b ldrh r3, [r3, #0] 8002e9e: b29b uxth r3, r3 8002ea0: 2b00 cmp r3, #0 8002ea2: f000 8684 beq.w 8003bae { pardata.amplif[ACTIVE_CHANNEL].IIN--; 8002ea6: 4b14 ldr r3, [pc, #80] ; (8002ef8 ) 8002ea8: 681b ldr r3, [r3, #0] 8002eaa: 4914 ldr r1, [pc, #80] ; (8002efc ) 8002eac: 015a lsls r2, r3, #5 8002eae: 440a add r2, r1 8002eb0: 8812 ldrh r2, [r2, #0] 8002eb2: b292 uxth r2, r2 8002eb4: 3a01 subs r2, #1 8002eb6: b291 uxth r1, r2 8002eb8: 4a10 ldr r2, [pc, #64] ; (8002efc ) 8002eba: 015b lsls r3, r3, #5 8002ebc: 4413 add r3, r2 8002ebe: 460a mov r2, r1 8002ec0: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002ec2: 4b0d ldr r3, [pc, #52] ; (8002ef8 ) 8002ec4: 681b ldr r3, [r3, #0] 8002ec6: b2db uxtb r3, r3 8002ec8: 4618 mov r0, r3 8002eca: f009 fda3 bl 800ca14 8002ece: 4603 mov r3, r0 8002ed0: 2b00 cmp r3, #0 8002ed2: f000 866c beq.w 8003bae { pardata.amplif[ACTIVE_CHANNEL].IIN++; 8002ed6: 4b08 ldr r3, [pc, #32] ; (8002ef8 ) 8002ed8: 681b ldr r3, [r3, #0] 8002eda: 4908 ldr r1, [pc, #32] ; (8002efc ) 8002edc: 015a lsls r2, r3, #5 8002ede: 440a add r2, r1 8002ee0: 8812 ldrh r2, [r2, #0] 8002ee2: b292 uxth r2, r2 8002ee4: 3201 adds r2, #1 8002ee6: b291 uxth r1, r2 8002ee8: 4a04 ldr r2, [pc, #16] ; (8002efc ) 8002eea: 015b lsls r3, r3, #5 8002eec: 4413 add r3, r2 8002eee: 460a mov r2, r1 8002ef0: 801a strh r2, [r3, #0] pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; } VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); } } 8002ef2: f000 be5c b.w 8003bae 8002ef6: bf00 nop 8002ef8: 2006b2d0 .word 0x2006b2d0 8002efc: 2006b510 .word 0x2006b510 8002f00: 461c4000 .word 0x461c4000 8002f04: 42c80000 .word 0x42c80000 8002f08: 447a0000 .word 0x447a0000 8002f0c: 47c35000 .word 0x47c35000 8002f10: 47c34f80 .word 0x47c34f80 8002f14: 0001869f .word 0x0001869f 8002f18: d1b71759 .word 0xd1b71759 8002f1c: 10624dd3 .word 0x10624dd3 8002f20: 51eb851f .word 0x51eb851f 8002f24: cccccccd .word 0xcccccccd 8002f28: 20020010 .word 0x20020010 8002f2c: 20020250 .word 0x20020250 menupos = Hp; 8002f30: 4b95 ldr r3, [pc, #596] ; (8003188 ) 8002f32: 2201 movs r2, #1 8002f34: 701a strb r2, [r3, #0] } 8002f36: f000 be3a b.w 8003bae if(menupos == Hp) 8002f3a: 4b93 ldr r3, [pc, #588] ; (8003188 ) 8002f3c: 781b ldrb r3, [r3, #0] 8002f3e: b2db uxtb r3, r3 8002f40: 2b01 cmp r3, #1 8002f42: d140 bne.n 8002fc6 if(focused) 8002f44: 4b91 ldr r3, [pc, #580] ; (800318c ) 8002f46: 781b ldrb r3, [r3, #0] 8002f48: b2db uxtb r3, r3 8002f4a: 2b00 cmp r3, #0 8002f4c: d036 beq.n 8002fbc if(pardata.amplif[ACTIVE_CHANNEL].IFV > Hp0_2) 8002f4e: 4b90 ldr r3, [pc, #576] ; (8003190 ) 8002f50: 681b ldr r3, [r3, #0] 8002f52: 4a90 ldr r2, [pc, #576] ; (8003194 ) 8002f54: 015b lsls r3, r3, #5 8002f56: 4413 add r3, r2 8002f58: 3302 adds r3, #2 8002f5a: 881b ldrh r3, [r3, #0] 8002f5c: b29b uxth r3, r3 8002f5e: 2b00 cmp r3, #0 8002f60: f000 8625 beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IFV--; 8002f64: 4b8a ldr r3, [pc, #552] ; (8003190 ) 8002f66: 681b ldr r3, [r3, #0] 8002f68: 498a ldr r1, [pc, #552] ; (8003194 ) 8002f6a: 015a lsls r2, r3, #5 8002f6c: 440a add r2, r1 8002f6e: 3202 adds r2, #2 8002f70: 8812 ldrh r2, [r2, #0] 8002f72: b292 uxth r2, r2 8002f74: 3a01 subs r2, #1 8002f76: b291 uxth r1, r2 8002f78: 4a86 ldr r2, [pc, #536] ; (8003194 ) 8002f7a: 015b lsls r3, r3, #5 8002f7c: 4413 add r3, r2 8002f7e: 3302 adds r3, #2 8002f80: 460a mov r2, r1 8002f82: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8002f84: 4b82 ldr r3, [pc, #520] ; (8003190 ) 8002f86: 681b ldr r3, [r3, #0] 8002f88: b2db uxtb r3, r3 8002f8a: 4618 mov r0, r3 8002f8c: f009 fd42 bl 800ca14 8002f90: 4603 mov r3, r0 8002f92: 2b00 cmp r3, #0 8002f94: f000 860b beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IFV++; 8002f98: 4b7d ldr r3, [pc, #500] ; (8003190 ) 8002f9a: 681b ldr r3, [r3, #0] 8002f9c: 497d ldr r1, [pc, #500] ; (8003194 ) 8002f9e: 015a lsls r2, r3, #5 8002fa0: 440a add r2, r1 8002fa2: 3202 adds r2, #2 8002fa4: 8812 ldrh r2, [r2, #0] 8002fa6: b292 uxth r2, r2 8002fa8: 3201 adds r2, #1 8002faa: b291 uxth r1, r2 8002fac: 4a79 ldr r2, [pc, #484] ; (8003194 ) 8002fae: 015b lsls r3, r3, #5 8002fb0: 4413 add r3, r2 8002fb2: 3302 adds r3, #2 8002fb4: 460a mov r2, r1 8002fb6: 801a strh r2, [r3, #0] } 8002fb8: f000 bdf9 b.w 8003bae menupos = Lp; 8002fbc: 4b72 ldr r3, [pc, #456] ; (8003188 ) 8002fbe: 2202 movs r2, #2 8002fc0: 701a strb r2, [r3, #0] } 8002fc2: f000 bdf4 b.w 8003bae if(menupos == Lp) 8002fc6: 4b70 ldr r3, [pc, #448] ; (8003188 ) 8002fc8: 781b ldrb r3, [r3, #0] 8002fca: b2db uxtb r3, r3 8002fcc: 2b02 cmp r3, #2 8002fce: d140 bne.n 8003052 if(focused) 8002fd0: 4b6e ldr r3, [pc, #440] ; (800318c ) 8002fd2: 781b ldrb r3, [r3, #0] 8002fd4: b2db uxtb r3, r3 8002fd6: 2b00 cmp r3, #0 8002fd8: d036 beq.n 8003048 if(pardata.amplif[ACTIVE_CHANNEL].IFN > Lp200) 8002fda: 4b6d ldr r3, [pc, #436] ; (8003190 ) 8002fdc: 681b ldr r3, [r3, #0] 8002fde: 4a6d ldr r2, [pc, #436] ; (8003194 ) 8002fe0: 015b lsls r3, r3, #5 8002fe2: 4413 add r3, r2 8002fe4: 3304 adds r3, #4 8002fe6: 881b ldrh r3, [r3, #0] 8002fe8: b29b uxth r3, r3 8002fea: 2b00 cmp r3, #0 8002fec: f000 85df beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IFN--; 8002ff0: 4b67 ldr r3, [pc, #412] ; (8003190 ) 8002ff2: 681b ldr r3, [r3, #0] 8002ff4: 4967 ldr r1, [pc, #412] ; (8003194 ) 8002ff6: 015a lsls r2, r3, #5 8002ff8: 440a add r2, r1 8002ffa: 3204 adds r2, #4 8002ffc: 8812 ldrh r2, [r2, #0] 8002ffe: b292 uxth r2, r2 8003000: 3a01 subs r2, #1 8003002: b291 uxth r1, r2 8003004: 4a63 ldr r2, [pc, #396] ; (8003194 ) 8003006: 015b lsls r3, r3, #5 8003008: 4413 add r3, r2 800300a: 3304 adds r3, #4 800300c: 460a mov r2, r1 800300e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8003010: 4b5f ldr r3, [pc, #380] ; (8003190 ) 8003012: 681b ldr r3, [r3, #0] 8003014: b2db uxtb r3, r3 8003016: 4618 mov r0, r3 8003018: f009 fcfc bl 800ca14 800301c: 4603 mov r3, r0 800301e: 2b00 cmp r3, #0 8003020: f000 85c5 beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IFN++; 8003024: 4b5a ldr r3, [pc, #360] ; (8003190 ) 8003026: 681b ldr r3, [r3, #0] 8003028: 495a ldr r1, [pc, #360] ; (8003194 ) 800302a: 015a lsls r2, r3, #5 800302c: 440a add r2, r1 800302e: 3204 adds r2, #4 8003030: 8812 ldrh r2, [r2, #0] 8003032: b292 uxth r2, r2 8003034: 3201 adds r2, #1 8003036: b291 uxth r1, r2 8003038: 4a56 ldr r2, [pc, #344] ; (8003194 ) 800303a: 015b lsls r3, r3, #5 800303c: 4413 add r3, r2 800303e: 3304 adds r3, #4 8003040: 460a mov r2, r1 8003042: 801a strh r2, [r3, #0] } 8003044: f000 bdb3 b.w 8003bae menupos = Sens; 8003048: 4b4f ldr r3, [pc, #316] ; (8003188 ) 800304a: 2203 movs r2, #3 800304c: 701a strb r2, [r3, #0] } 800304e: f000 bdae b.w 8003bae if(menupos == Sens) 8003052: 4b4d ldr r3, [pc, #308] ; (8003188 ) 8003054: 781b ldrb r3, [r3, #0] 8003056: b2db uxtb r3, r3 8003058: 2b03 cmp r3, #3 800305a: d104 bne.n 8003066 menupos = Val; 800305c: 4b4a ldr r3, [pc, #296] ; (8003188 ) 800305e: 2204 movs r2, #4 8003060: 701a strb r2, [r3, #0] } 8003062: f000 bda4 b.w 8003bae if(menupos == Val) 8003066: 4b48 ldr r3, [pc, #288] ; (8003188 ) 8003068: 781b ldrb r3, [r3, #0] 800306a: b2db uxtb r3, r3 800306c: 2b04 cmp r3, #4 800306e: d140 bne.n 80030f2 if(focused) 8003070: 4b46 ldr r3, [pc, #280] ; (800318c ) 8003072: 781b ldrb r3, [r3, #0] 8003074: b2db uxtb r3, r3 8003076: 2b00 cmp r3, #0 8003078: d036 beq.n 80030e8 if(pardata.amplif[ACTIVE_CHANNEL].VAL > Accel) 800307a: 4b45 ldr r3, [pc, #276] ; (8003190 ) 800307c: 681b ldr r3, [r3, #0] 800307e: 4a45 ldr r2, [pc, #276] ; (8003194 ) 8003080: 015b lsls r3, r3, #5 8003082: 4413 add r3, r2 8003084: 3312 adds r3, #18 8003086: 881b ldrh r3, [r3, #0] 8003088: b29b uxth r3, r3 800308a: 2b00 cmp r3, #0 800308c: f000 858f beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].VAL--; 8003090: 4b3f ldr r3, [pc, #252] ; (8003190 ) 8003092: 681b ldr r3, [r3, #0] 8003094: 493f ldr r1, [pc, #252] ; (8003194 ) 8003096: 015a lsls r2, r3, #5 8003098: 440a add r2, r1 800309a: 3212 adds r2, #18 800309c: 8812 ldrh r2, [r2, #0] 800309e: b292 uxth r2, r2 80030a0: 3a01 subs r2, #1 80030a2: b291 uxth r1, r2 80030a4: 4a3b ldr r2, [pc, #236] ; (8003194 ) 80030a6: 015b lsls r3, r3, #5 80030a8: 4413 add r3, r2 80030aa: 3312 adds r3, #18 80030ac: 460a mov r2, r1 80030ae: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80030b0: 4b37 ldr r3, [pc, #220] ; (8003190 ) 80030b2: 681b ldr r3, [r3, #0] 80030b4: b2db uxtb r3, r3 80030b6: 4618 mov r0, r3 80030b8: f009 fcac bl 800ca14 80030bc: 4603 mov r3, r0 80030be: 2b00 cmp r3, #0 80030c0: f000 8575 beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].VAL++; 80030c4: 4b32 ldr r3, [pc, #200] ; (8003190 ) 80030c6: 681b ldr r3, [r3, #0] 80030c8: 4932 ldr r1, [pc, #200] ; (8003194 ) 80030ca: 015a lsls r2, r3, #5 80030cc: 440a add r2, r1 80030ce: 3212 adds r2, #18 80030d0: 8812 ldrh r2, [r2, #0] 80030d2: b292 uxth r2, r2 80030d4: 3201 adds r2, #1 80030d6: b291 uxth r1, r2 80030d8: 4a2e ldr r2, [pc, #184] ; (8003194 ) 80030da: 015b lsls r3, r3, #5 80030dc: 4413 add r3, r2 80030de: 3312 adds r3, #18 80030e0: 460a mov r2, r1 80030e2: 801a strh r2, [r3, #0] } 80030e4: f000 bd63 b.w 8003bae menupos = Out; 80030e8: 4b27 ldr r3, [pc, #156] ; (8003188 ) 80030ea: 2205 movs r2, #5 80030ec: 701a strb r2, [r3, #0] } 80030ee: f000 bd5e b.w 8003bae if(menupos == Out) 80030f2: 4b25 ldr r3, [pc, #148] ; (8003188 ) 80030f4: 781b ldrb r3, [r3, #0] 80030f6: b2db uxtb r3, r3 80030f8: 2b05 cmp r3, #5 80030fa: f040 8089 bne.w 8003210 if(focused) 80030fe: 4b23 ldr r3, [pc, #140] ; (800318c ) 8003100: 781b ldrb r3, [r3, #0] 8003102: b2db uxtb r3, r3 8003104: 2b00 cmp r3, #0 8003106: d07e beq.n 8003206 if(pardata.amplif[ACTIVE_CHANNEL].IIN == CHARGE) 8003108: 4b21 ldr r3, [pc, #132] ; (8003190 ) 800310a: 681b ldr r3, [r3, #0] 800310c: 4a21 ldr r2, [pc, #132] ; (8003194 ) 800310e: 015b lsls r3, r3, #5 8003110: 4413 add r3, r2 8003112: 881b ldrh r3, [r3, #0] 8003114: b29b uxth r3, r3 8003116: 2b00 cmp r3, #0 8003118: d13e bne.n 8003198 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1) 800311a: 4b1d ldr r3, [pc, #116] ; (8003190 ) 800311c: 681b ldr r3, [r3, #0] 800311e: 4a1d ldr r2, [pc, #116] ; (8003194 ) 8003120: 015b lsls r3, r3, #5 8003122: 4413 add r3, r2 8003124: 3306 adds r3, #6 8003126: 881b ldrh r3, [r3, #0] 8003128: b29b uxth r3, r3 800312a: 2b00 cmp r3, #0 800312c: f000 853f beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IKU--; 8003130: 4b17 ldr r3, [pc, #92] ; (8003190 ) 8003132: 681b ldr r3, [r3, #0] 8003134: 4917 ldr r1, [pc, #92] ; (8003194 ) 8003136: 015a lsls r2, r3, #5 8003138: 440a add r2, r1 800313a: 3206 adds r2, #6 800313c: 8812 ldrh r2, [r2, #0] 800313e: b292 uxth r2, r2 8003140: 3a01 subs r2, #1 8003142: b291 uxth r1, r2 8003144: 4a13 ldr r2, [pc, #76] ; (8003194 ) 8003146: 015b lsls r3, r3, #5 8003148: 4413 add r3, r2 800314a: 3306 adds r3, #6 800314c: 460a mov r2, r1 800314e: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 8003150: 4b0f ldr r3, [pc, #60] ; (8003190 ) 8003152: 681b ldr r3, [r3, #0] 8003154: b2db uxtb r3, r3 8003156: 4618 mov r0, r3 8003158: f009 fc5c bl 800ca14 800315c: 4603 mov r3, r0 800315e: 2b00 cmp r3, #0 8003160: f000 8525 beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IKU++; 8003164: 4b0a ldr r3, [pc, #40] ; (8003190 ) 8003166: 681b ldr r3, [r3, #0] 8003168: 490a ldr r1, [pc, #40] ; (8003194 ) 800316a: 015a lsls r2, r3, #5 800316c: 440a add r2, r1 800316e: 3206 adds r2, #6 8003170: 8812 ldrh r2, [r2, #0] 8003172: b292 uxth r2, r2 8003174: 3201 adds r2, #1 8003176: b291 uxth r1, r2 8003178: 4a06 ldr r2, [pc, #24] ; (8003194 ) 800317a: 015b lsls r3, r3, #5 800317c: 4413 add r3, r2 800317e: 3306 adds r3, #6 8003180: 460a mov r2, r1 8003182: 801a strh r2, [r3, #0] } 8003184: f000 bd13 b.w 8003bae 8003188: 20020010 .word 0x20020010 800318c: 20020250 .word 0x20020250 8003190: 2006b2d0 .word 0x2006b2d0 8003194: 2006b510 .word 0x2006b510 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1) 8003198: 4bba ldr r3, [pc, #744] ; (8003484 ) 800319a: 681b ldr r3, [r3, #0] 800319c: 4aba ldr r2, [pc, #744] ; (8003488 ) 800319e: 015b lsls r3, r3, #5 80031a0: 4413 add r3, r2 80031a2: 3306 adds r3, #6 80031a4: 881b ldrh r3, [r3, #0] 80031a6: b29b uxth r3, r3 80031a8: 2b03 cmp r3, #3 80031aa: f240 8500 bls.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IKU--; 80031ae: 4bb5 ldr r3, [pc, #724] ; (8003484 ) 80031b0: 681b ldr r3, [r3, #0] 80031b2: 49b5 ldr r1, [pc, #724] ; (8003488 ) 80031b4: 015a lsls r2, r3, #5 80031b6: 440a add r2, r1 80031b8: 3206 adds r2, #6 80031ba: 8812 ldrh r2, [r2, #0] 80031bc: b292 uxth r2, r2 80031be: 3a01 subs r2, #1 80031c0: b291 uxth r1, r2 80031c2: 4ab1 ldr r2, [pc, #708] ; (8003488 ) 80031c4: 015b lsls r3, r3, #5 80031c6: 4413 add r3, r2 80031c8: 3306 adds r3, #6 80031ca: 460a mov r2, r1 80031cc: 801a strh r2, [r3, #0] if(WriteChannel(ACTIVE_CHANNEL)) 80031ce: 4bad ldr r3, [pc, #692] ; (8003484 ) 80031d0: 681b ldr r3, [r3, #0] 80031d2: b2db uxtb r3, r3 80031d4: 4618 mov r0, r3 80031d6: f009 fc1d bl 800ca14 80031da: 4603 mov r3, r0 80031dc: 2b00 cmp r3, #0 80031de: f000 84e6 beq.w 8003bae pardata.amplif[ACTIVE_CHANNEL].IKU++; 80031e2: 4ba8 ldr r3, [pc, #672] ; (8003484 ) 80031e4: 681b ldr r3, [r3, #0] 80031e6: 49a8 ldr r1, [pc, #672] ; (8003488 ) 80031e8: 015a lsls r2, r3, #5 80031ea: 440a add r2, r1 80031ec: 3206 adds r2, #6 80031ee: 8812 ldrh r2, [r2, #0] 80031f0: b292 uxth r2, r2 80031f2: 3201 adds r2, #1 80031f4: b291 uxth r1, r2 80031f6: 4aa4 ldr r2, [pc, #656] ; (8003488 ) 80031f8: 015b lsls r3, r3, #5 80031fa: 4413 add r3, r2 80031fc: 3306 adds r3, #6 80031fe: 460a mov r2, r1 8003200: 801a strh r2, [r3, #0] } 8003202: f000 bcd4 b.w 8003bae menupos = Sens; 8003206: 4ba1 ldr r3, [pc, #644] ; (800348c ) 8003208: 2203 movs r2, #3 800320a: 701a strb r2, [r3, #0] } 800320c: f000 bccf b.w 8003bae if(menupos == Kikdt) 8003210: 4b9e ldr r3, [pc, #632] ; (800348c ) 8003212: 781b ldrb r3, [r3, #0] 8003214: b2db uxtb r3, r3 8003216: 2b06 cmp r3, #6 8003218: f040 80be bne.w 8003398 if(ikdt) { 800321c: 69bb ldr r3, [r7, #24] 800321e: 2b00 cmp r3, #0 8003220: d002 beq.n 8003228 ikdt--; 8003222: 69bb ldr r3, [r7, #24] 8003224: 3b01 subs r3, #1 8003226: 61bb str r3, [r7, #24] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003228: 69bb ldr r3, [r7, #24] 800322a: f242 7210 movw r2, #10000 ; 0x2710 800322e: fb02 f203 mul.w r2, r2, r3 8003232: 697b ldr r3, [r7, #20] 8003234: f44f 717a mov.w r1, #1000 ; 0x3e8 8003238: fb01 f303 mul.w r3, r1, r3 800323c: 18d1 adds r1, r2, r3 800323e: 68fa ldr r2, [r7, #12] 8003240: 4613 mov r3, r2 8003242: 009b lsls r3, r3, #2 8003244: 4413 add r3, r2 8003246: 005b lsls r3, r3, #1 8003248: 4618 mov r0, r3 800324a: 693b ldr r3, [r7, #16] 800324c: 2264 movs r2, #100 ; 0x64 800324e: fb02 f303 mul.w r3, r2, r3 8003252: 4403 add r3, r0 8003254: 18ca adds r2, r1, r3 8003256: 68bb ldr r3, [r7, #8] 8003258: 4413 add r3, r2 800325a: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800325c: 4b89 ldr r3, [pc, #548] ; (8003484 ) 800325e: 681b ldr r3, [r3, #0] 8003260: 69fa ldr r2, [r7, #28] 8003262: ee07 2a90 vmov s15, r2 8003266: eef8 7a67 vcvt.f32.u32 s15, s15 800326a: 4a87 ldr r2, [pc, #540] ; (8003488 ) 800326c: 015b lsls r3, r3, #5 800326e: 4413 add r3, r2 8003270: 3318 adds r3, #24 8003272: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003276: 687b ldr r3, [r7, #4] 8003278: 2b01 cmp r3, #1 800327a: d112 bne.n 80032a2 800327c: 4b81 ldr r3, [pc, #516] ; (8003484 ) 800327e: 681b ldr r3, [r3, #0] 8003280: 4981 ldr r1, [pc, #516] ; (8003488 ) 8003282: 015a lsls r2, r3, #5 8003284: 440a add r2, r1 8003286: 3218 adds r2, #24 8003288: edd2 7a00 vldr s15, [r2] 800328c: ed9f 7a80 vldr s14, [pc, #512] ; 8003490 8003290: ee67 7a87 vmul.f32 s15, s15, s14 8003294: 4a7c ldr r2, [pc, #496] ; (8003488 ) 8003296: 015b lsls r3, r3, #5 8003298: 4413 add r3, r2 800329a: 3318 adds r3, #24 800329c: edc3 7a00 vstr s15, [r3] 80032a0: e040 b.n 8003324 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80032a2: 687b ldr r3, [r7, #4] 80032a4: 2b02 cmp r3, #2 80032a6: d112 bne.n 80032ce 80032a8: 4b76 ldr r3, [pc, #472] ; (8003484 ) 80032aa: 681b ldr r3, [r3, #0] 80032ac: 4976 ldr r1, [pc, #472] ; (8003488 ) 80032ae: 015a lsls r2, r3, #5 80032b0: 440a add r2, r1 80032b2: 3218 adds r2, #24 80032b4: edd2 7a00 vldr s15, [r2] 80032b8: ed9f 7a76 vldr s14, [pc, #472] ; 8003494 80032bc: ee67 7a87 vmul.f32 s15, s15, s14 80032c0: 4a71 ldr r2, [pc, #452] ; (8003488 ) 80032c2: 015b lsls r3, r3, #5 80032c4: 4413 add r3, r2 80032c6: 3318 adds r3, #24 80032c8: edc3 7a00 vstr s15, [r3] 80032cc: e02a b.n 8003324 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80032ce: 687b ldr r3, [r7, #4] 80032d0: 2b03 cmp r3, #3 80032d2: d112 bne.n 80032fa 80032d4: 4b6b ldr r3, [pc, #428] ; (8003484 ) 80032d6: 681b ldr r3, [r3, #0] 80032d8: 496b ldr r1, [pc, #428] ; (8003488 ) 80032da: 015a lsls r2, r3, #5 80032dc: 440a add r2, r1 80032de: 3218 adds r2, #24 80032e0: edd2 7a00 vldr s15, [r2] 80032e4: ed9f 7a6c vldr s14, [pc, #432] ; 8003498 80032e8: ee67 7a87 vmul.f32 s15, s15, s14 80032ec: 4a66 ldr r2, [pc, #408] ; (8003488 ) 80032ee: 015b lsls r3, r3, #5 80032f0: 4413 add r3, r2 80032f2: 3318 adds r3, #24 80032f4: edc3 7a00 vstr s15, [r3] 80032f8: e014 b.n 8003324 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80032fa: 687b ldr r3, [r7, #4] 80032fc: 2b04 cmp r3, #4 80032fe: d111 bne.n 8003324 8003300: 4b60 ldr r3, [pc, #384] ; (8003484 ) 8003302: 681b ldr r3, [r3, #0] 8003304: 4960 ldr r1, [pc, #384] ; (8003488 ) 8003306: 015a lsls r2, r3, #5 8003308: 440a add r2, r1 800330a: 3218 adds r2, #24 800330c: edd2 7a00 vldr s15, [r2] 8003310: ed9f 7a62 vldr s14, [pc, #392] ; 800349c 8003314: ee67 7a87 vmul.f32 s15, s15, s14 8003318: 4a5b ldr r2, [pc, #364] ; (8003488 ) 800331a: 015b lsls r3, r3, #5 800331c: 4413 add r3, r2 800331e: 3318 adds r3, #24 8003320: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8003324: 4b57 ldr r3, [pc, #348] ; (8003484 ) 8003326: 681b ldr r3, [r3, #0] 8003328: 4a57 ldr r2, [pc, #348] ; (8003488 ) 800332a: 015b lsls r3, r3, #5 800332c: 4413 add r3, r2 800332e: 3318 adds r3, #24 8003330: edd3 7a00 vldr s15, [r3] 8003334: eef5 7ac0 vcmpe.f32 s15, #0.0 8003338: eef1 fa10 vmrs APSR_nzcv, fpscr 800333c: d807 bhi.n 800334e pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 800333e: 4b51 ldr r3, [pc, #324] ; (8003484 ) 8003340: 681b ldr r3, [r3, #0] 8003342: 4a51 ldr r2, [pc, #324] ; (8003488 ) 8003344: 015b lsls r3, r3, #5 8003346: 4413 add r3, r2 8003348: 3318 adds r3, #24 800334a: 4a55 ldr r2, [pc, #340] ; (80034a0 ) 800334c: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 800334e: 4b4d ldr r3, [pc, #308] ; (8003484 ) 8003350: 681b ldr r3, [r3, #0] 8003352: 4a4d ldr r2, [pc, #308] ; (8003488 ) 8003354: 015b lsls r3, r3, #5 8003356: 4413 add r3, r2 8003358: 3318 adds r3, #24 800335a: edd3 7a00 vldr s15, [r3] 800335e: ed9f 7a51 vldr s14, [pc, #324] ; 80034a4 8003362: eef4 7ac7 vcmpe.f32 s15, s14 8003366: eef1 fa10 vmrs APSR_nzcv, fpscr 800336a: db07 blt.n 800337c pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800336c: 4b45 ldr r3, [pc, #276] ; (8003484 ) 800336e: 681b ldr r3, [r3, #0] 8003370: 4a45 ldr r2, [pc, #276] ; (8003488 ) 8003372: 015b lsls r3, r3, #5 8003374: 4413 add r3, r2 8003376: 3318 adds r3, #24 8003378: 4a4b ldr r2, [pc, #300] ; (80034a8 ) 800337a: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800337c: 4b41 ldr r3, [pc, #260] ; (8003484 ) 800337e: 681b ldr r3, [r3, #0] 8003380: 4a41 ldr r2, [pc, #260] ; (8003488 ) 8003382: 015b lsls r3, r3, #5 8003384: 4413 add r3, r2 8003386: 3318 adds r3, #24 8003388: edd3 7a00 vldr s15, [r3] 800338c: eeb0 0a67 vmov.f32 s0, s15 8003390: f000 fc22 bl 8003bd8 } 8003394: f000 bc0b b.w 8003bae if(menupos == Kikt) 8003398: 4b3c ldr r3, [pc, #240] ; (800348c ) 800339a: 781b ldrb r3, [r3, #0] 800339c: b2db uxtb r3, r3 800339e: 2b07 cmp r3, #7 80033a0: f040 80d2 bne.w 8003548 if(ikt) { 80033a4: 697b ldr r3, [r7, #20] 80033a6: 2b00 cmp r3, #0 80033a8: d002 beq.n 80033b0 ikt--; 80033aa: 697b ldr r3, [r7, #20] 80033ac: 3b01 subs r3, #1 80033ae: 617b str r3, [r7, #20] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80033b0: 69bb ldr r3, [r7, #24] 80033b2: f242 7210 movw r2, #10000 ; 0x2710 80033b6: fb02 f203 mul.w r2, r2, r3 80033ba: 697b ldr r3, [r7, #20] 80033bc: f44f 717a mov.w r1, #1000 ; 0x3e8 80033c0: fb01 f303 mul.w r3, r1, r3 80033c4: 18d1 adds r1, r2, r3 80033c6: 68fa ldr r2, [r7, #12] 80033c8: 4613 mov r3, r2 80033ca: 009b lsls r3, r3, #2 80033cc: 4413 add r3, r2 80033ce: 005b lsls r3, r3, #1 80033d0: 4618 mov r0, r3 80033d2: 693b ldr r3, [r7, #16] 80033d4: 2264 movs r2, #100 ; 0x64 80033d6: fb02 f303 mul.w r3, r2, r3 80033da: 4403 add r3, r0 80033dc: 18ca adds r2, r1, r3 80033de: 68bb ldr r3, [r7, #8] 80033e0: 4413 add r3, r2 80033e2: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80033e4: 4b27 ldr r3, [pc, #156] ; (8003484 ) 80033e6: 681b ldr r3, [r3, #0] 80033e8: 69fa ldr r2, [r7, #28] 80033ea: ee07 2a90 vmov s15, r2 80033ee: eef8 7a67 vcvt.f32.u32 s15, s15 80033f2: 4a25 ldr r2, [pc, #148] ; (8003488 ) 80033f4: 015b lsls r3, r3, #5 80033f6: 4413 add r3, r2 80033f8: 3318 adds r3, #24 80033fa: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80033fe: 687b ldr r3, [r7, #4] 8003400: 2b01 cmp r3, #1 8003402: d112 bne.n 800342a 8003404: 4b1f ldr r3, [pc, #124] ; (8003484 ) 8003406: 681b ldr r3, [r3, #0] 8003408: 491f ldr r1, [pc, #124] ; (8003488 ) 800340a: 015a lsls r2, r3, #5 800340c: 440a add r2, r1 800340e: 3218 adds r2, #24 8003410: edd2 7a00 vldr s15, [r2] 8003414: ed9f 7a1e vldr s14, [pc, #120] ; 8003490 8003418: ee67 7a87 vmul.f32 s15, s15, s14 800341c: 4a1a ldr r2, [pc, #104] ; (8003488 ) 800341e: 015b lsls r3, r3, #5 8003420: 4413 add r3, r2 8003422: 3318 adds r3, #24 8003424: edc3 7a00 vstr s15, [r3] 8003428: e055 b.n 80034d6 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 800342a: 687b ldr r3, [r7, #4] 800342c: 2b02 cmp r3, #2 800342e: d112 bne.n 8003456 8003430: 4b14 ldr r3, [pc, #80] ; (8003484 ) 8003432: 681b ldr r3, [r3, #0] 8003434: 4914 ldr r1, [pc, #80] ; (8003488 ) 8003436: 015a lsls r2, r3, #5 8003438: 440a add r2, r1 800343a: 3218 adds r2, #24 800343c: edd2 7a00 vldr s15, [r2] 8003440: ed9f 7a14 vldr s14, [pc, #80] ; 8003494 8003444: ee67 7a87 vmul.f32 s15, s15, s14 8003448: 4a0f ldr r2, [pc, #60] ; (8003488 ) 800344a: 015b lsls r3, r3, #5 800344c: 4413 add r3, r2 800344e: 3318 adds r3, #24 8003450: edc3 7a00 vstr s15, [r3] 8003454: e03f b.n 80034d6 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003456: 687b ldr r3, [r7, #4] 8003458: 2b03 cmp r3, #3 800345a: d127 bne.n 80034ac 800345c: 4b09 ldr r3, [pc, #36] ; (8003484 ) 800345e: 681b ldr r3, [r3, #0] 8003460: 4909 ldr r1, [pc, #36] ; (8003488 ) 8003462: 015a lsls r2, r3, #5 8003464: 440a add r2, r1 8003466: 3218 adds r2, #24 8003468: edd2 7a00 vldr s15, [r2] 800346c: ed9f 7a0a vldr s14, [pc, #40] ; 8003498 8003470: ee67 7a87 vmul.f32 s15, s15, s14 8003474: 4a04 ldr r2, [pc, #16] ; (8003488 ) 8003476: 015b lsls r3, r3, #5 8003478: 4413 add r3, r2 800347a: 3318 adds r3, #24 800347c: edc3 7a00 vstr s15, [r3] 8003480: e029 b.n 80034d6 8003482: bf00 nop 8003484: 2006b2d0 .word 0x2006b2d0 8003488: 2006b510 .word 0x2006b510 800348c: 20020010 .word 0x20020010 8003490: 3dcccccd .word 0x3dcccccd 8003494: 3c23d70a .word 0x3c23d70a 8003498: 3a83126f .word 0x3a83126f 800349c: 38d1b717 .word 0x38d1b717 80034a0: 38d1b717 .word 0x38d1b717 80034a4: 47c35000 .word 0x47c35000 80034a8: 47c34f80 .word 0x47c34f80 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80034ac: 687b ldr r3, [r7, #4] 80034ae: 2b04 cmp r3, #4 80034b0: d111 bne.n 80034d6 80034b2: 4bb6 ldr r3, [pc, #728] ; (800378c ) 80034b4: 681b ldr r3, [r3, #0] 80034b6: 49b6 ldr r1, [pc, #728] ; (8003790 ) 80034b8: 015a lsls r2, r3, #5 80034ba: 440a add r2, r1 80034bc: 3218 adds r2, #24 80034be: edd2 7a00 vldr s15, [r2] 80034c2: ed9f 7ab4 vldr s14, [pc, #720] ; 8003794 80034c6: ee67 7a87 vmul.f32 s15, s15, s14 80034ca: 4ab1 ldr r2, [pc, #708] ; (8003790 ) 80034cc: 015b lsls r3, r3, #5 80034ce: 4413 add r3, r2 80034d0: 3318 adds r3, #24 80034d2: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 80034d6: 4bad ldr r3, [pc, #692] ; (800378c ) 80034d8: 681b ldr r3, [r3, #0] 80034da: 4aad ldr r2, [pc, #692] ; (8003790 ) 80034dc: 015b lsls r3, r3, #5 80034de: 4413 add r3, r2 80034e0: 3318 adds r3, #24 80034e2: edd3 7a00 vldr s15, [r3] 80034e6: eef5 7ac0 vcmpe.f32 s15, #0.0 80034ea: eef1 fa10 vmrs APSR_nzcv, fpscr 80034ee: d807 bhi.n 8003500 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80034f0: 4ba6 ldr r3, [pc, #664] ; (800378c ) 80034f2: 681b ldr r3, [r3, #0] 80034f4: 4aa6 ldr r2, [pc, #664] ; (8003790 ) 80034f6: 015b lsls r3, r3, #5 80034f8: 4413 add r3, r2 80034fa: 3318 adds r3, #24 80034fc: 4aa6 ldr r2, [pc, #664] ; (8003798 ) 80034fe: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003500: 4ba2 ldr r3, [pc, #648] ; (800378c ) 8003502: 681b ldr r3, [r3, #0] 8003504: 4aa2 ldr r2, [pc, #648] ; (8003790 ) 8003506: 015b lsls r3, r3, #5 8003508: 4413 add r3, r2 800350a: 3318 adds r3, #24 800350c: edd3 7a00 vldr s15, [r3] 8003510: ed9f 7aa2 vldr s14, [pc, #648] ; 800379c 8003514: eef4 7ac7 vcmpe.f32 s15, s14 8003518: eef1 fa10 vmrs APSR_nzcv, fpscr 800351c: db07 blt.n 800352e pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 800351e: 4b9b ldr r3, [pc, #620] ; (800378c ) 8003520: 681b ldr r3, [r3, #0] 8003522: 4a9b ldr r2, [pc, #620] ; (8003790 ) 8003524: 015b lsls r3, r3, #5 8003526: 4413 add r3, r2 8003528: 3318 adds r3, #24 800352a: 4a9d ldr r2, [pc, #628] ; (80037a0 ) 800352c: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 800352e: 4b97 ldr r3, [pc, #604] ; (800378c ) 8003530: 681b ldr r3, [r3, #0] 8003532: 4a97 ldr r2, [pc, #604] ; (8003790 ) 8003534: 015b lsls r3, r3, #5 8003536: 4413 add r3, r2 8003538: 3318 adds r3, #24 800353a: edd3 7a00 vldr s15, [r3] 800353e: eeb0 0a67 vmov.f32 s0, s15 8003542: f000 fb49 bl 8003bd8 } 8003546: e332 b.n 8003bae if(menupos == Kiks) 8003548: 4b96 ldr r3, [pc, #600] ; (80037a4 ) 800354a: 781b ldrb r3, [r3, #0] 800354c: b2db uxtb r3, r3 800354e: 2b08 cmp r3, #8 8003550: f040 80bd bne.w 80036ce if(iks) { 8003554: 693b ldr r3, [r7, #16] 8003556: 2b00 cmp r3, #0 8003558: d002 beq.n 8003560 iks--; 800355a: 693b ldr r3, [r7, #16] 800355c: 3b01 subs r3, #1 800355e: 613b str r3, [r7, #16] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003560: 69bb ldr r3, [r7, #24] 8003562: f242 7210 movw r2, #10000 ; 0x2710 8003566: fb02 f203 mul.w r2, r2, r3 800356a: 697b ldr r3, [r7, #20] 800356c: f44f 717a mov.w r1, #1000 ; 0x3e8 8003570: fb01 f303 mul.w r3, r1, r3 8003574: 18d1 adds r1, r2, r3 8003576: 68fa ldr r2, [r7, #12] 8003578: 4613 mov r3, r2 800357a: 009b lsls r3, r3, #2 800357c: 4413 add r3, r2 800357e: 005b lsls r3, r3, #1 8003580: 4618 mov r0, r3 8003582: 693b ldr r3, [r7, #16] 8003584: 2264 movs r2, #100 ; 0x64 8003586: fb02 f303 mul.w r3, r2, r3 800358a: 4403 add r3, r0 800358c: 18ca adds r2, r1, r3 800358e: 68bb ldr r3, [r7, #8] 8003590: 4413 add r3, r2 8003592: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003594: 4b7d ldr r3, [pc, #500] ; (800378c ) 8003596: 681b ldr r3, [r3, #0] 8003598: 69fa ldr r2, [r7, #28] 800359a: ee07 2a90 vmov s15, r2 800359e: eef8 7a67 vcvt.f32.u32 s15, s15 80035a2: 4a7b ldr r2, [pc, #492] ; (8003790 ) 80035a4: 015b lsls r3, r3, #5 80035a6: 4413 add r3, r2 80035a8: 3318 adds r3, #24 80035aa: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80035ae: 687b ldr r3, [r7, #4] 80035b0: 2b01 cmp r3, #1 80035b2: d112 bne.n 80035da 80035b4: 4b75 ldr r3, [pc, #468] ; (800378c ) 80035b6: 681b ldr r3, [r3, #0] 80035b8: 4975 ldr r1, [pc, #468] ; (8003790 ) 80035ba: 015a lsls r2, r3, #5 80035bc: 440a add r2, r1 80035be: 3218 adds r2, #24 80035c0: edd2 7a00 vldr s15, [r2] 80035c4: ed9f 7a78 vldr s14, [pc, #480] ; 80037a8 80035c8: ee67 7a87 vmul.f32 s15, s15, s14 80035cc: 4a70 ldr r2, [pc, #448] ; (8003790 ) 80035ce: 015b lsls r3, r3, #5 80035d0: 4413 add r3, r2 80035d2: 3318 adds r3, #24 80035d4: edc3 7a00 vstr s15, [r3] 80035d8: e040 b.n 800365c else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 80035da: 687b ldr r3, [r7, #4] 80035dc: 2b02 cmp r3, #2 80035de: d112 bne.n 8003606 80035e0: 4b6a ldr r3, [pc, #424] ; (800378c ) 80035e2: 681b ldr r3, [r3, #0] 80035e4: 496a ldr r1, [pc, #424] ; (8003790 ) 80035e6: 015a lsls r2, r3, #5 80035e8: 440a add r2, r1 80035ea: 3218 adds r2, #24 80035ec: edd2 7a00 vldr s15, [r2] 80035f0: ed9f 7a6e vldr s14, [pc, #440] ; 80037ac 80035f4: ee67 7a87 vmul.f32 s15, s15, s14 80035f8: 4a65 ldr r2, [pc, #404] ; (8003790 ) 80035fa: 015b lsls r3, r3, #5 80035fc: 4413 add r3, r2 80035fe: 3318 adds r3, #24 8003600: edc3 7a00 vstr s15, [r3] 8003604: e02a b.n 800365c else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003606: 687b ldr r3, [r7, #4] 8003608: 2b03 cmp r3, #3 800360a: d112 bne.n 8003632 800360c: 4b5f ldr r3, [pc, #380] ; (800378c ) 800360e: 681b ldr r3, [r3, #0] 8003610: 495f ldr r1, [pc, #380] ; (8003790 ) 8003612: 015a lsls r2, r3, #5 8003614: 440a add r2, r1 8003616: 3218 adds r2, #24 8003618: edd2 7a00 vldr s15, [r2] 800361c: ed9f 7a64 vldr s14, [pc, #400] ; 80037b0 8003620: ee67 7a87 vmul.f32 s15, s15, s14 8003624: 4a5a ldr r2, [pc, #360] ; (8003790 ) 8003626: 015b lsls r3, r3, #5 8003628: 4413 add r3, r2 800362a: 3318 adds r3, #24 800362c: edc3 7a00 vstr s15, [r3] 8003630: e014 b.n 800365c else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003632: 687b ldr r3, [r7, #4] 8003634: 2b04 cmp r3, #4 8003636: d111 bne.n 800365c 8003638: 4b54 ldr r3, [pc, #336] ; (800378c ) 800363a: 681b ldr r3, [r3, #0] 800363c: 4954 ldr r1, [pc, #336] ; (8003790 ) 800363e: 015a lsls r2, r3, #5 8003640: 440a add r2, r1 8003642: 3218 adds r2, #24 8003644: edd2 7a00 vldr s15, [r2] 8003648: ed9f 7a52 vldr s14, [pc, #328] ; 8003794 800364c: ee67 7a87 vmul.f32 s15, s15, s14 8003650: 4a4f ldr r2, [pc, #316] ; (8003790 ) 8003652: 015b lsls r3, r3, #5 8003654: 4413 add r3, r2 8003656: 3318 adds r3, #24 8003658: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 800365c: 4b4b ldr r3, [pc, #300] ; (800378c ) 800365e: 681b ldr r3, [r3, #0] 8003660: 4a4b ldr r2, [pc, #300] ; (8003790 ) 8003662: 015b lsls r3, r3, #5 8003664: 4413 add r3, r2 8003666: 3318 adds r3, #24 8003668: edd3 7a00 vldr s15, [r3] 800366c: eef5 7ac0 vcmpe.f32 s15, #0.0 8003670: eef1 fa10 vmrs APSR_nzcv, fpscr 8003674: d807 bhi.n 8003686 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8003676: 4b45 ldr r3, [pc, #276] ; (800378c ) 8003678: 681b ldr r3, [r3, #0] 800367a: 4a45 ldr r2, [pc, #276] ; (8003790 ) 800367c: 015b lsls r3, r3, #5 800367e: 4413 add r3, r2 8003680: 3318 adds r3, #24 8003682: 4a45 ldr r2, [pc, #276] ; (8003798 ) 8003684: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003686: 4b41 ldr r3, [pc, #260] ; (800378c ) 8003688: 681b ldr r3, [r3, #0] 800368a: 4a41 ldr r2, [pc, #260] ; (8003790 ) 800368c: 015b lsls r3, r3, #5 800368e: 4413 add r3, r2 8003690: 3318 adds r3, #24 8003692: edd3 7a00 vldr s15, [r3] 8003696: ed9f 7a41 vldr s14, [pc, #260] ; 800379c 800369a: eef4 7ac7 vcmpe.f32 s15, s14 800369e: eef1 fa10 vmrs APSR_nzcv, fpscr 80036a2: db07 blt.n 80036b4 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 80036a4: 4b39 ldr r3, [pc, #228] ; (800378c ) 80036a6: 681b ldr r3, [r3, #0] 80036a8: 4a39 ldr r2, [pc, #228] ; (8003790 ) 80036aa: 015b lsls r3, r3, #5 80036ac: 4413 add r3, r2 80036ae: 3318 adds r3, #24 80036b0: 4a3b ldr r2, [pc, #236] ; (80037a0 ) 80036b2: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80036b4: 4b35 ldr r3, [pc, #212] ; (800378c ) 80036b6: 681b ldr r3, [r3, #0] 80036b8: 4a35 ldr r2, [pc, #212] ; (8003790 ) 80036ba: 015b lsls r3, r3, #5 80036bc: 4413 add r3, r2 80036be: 3318 adds r3, #24 80036c0: edd3 7a00 vldr s15, [r3] 80036c4: eeb0 0a67 vmov.f32 s0, s15 80036c8: f000 fa86 bl 8003bd8 } 80036cc: e26f b.n 8003bae if(menupos == Kikd) 80036ce: 4b35 ldr r3, [pc, #212] ; (80037a4 ) 80036d0: 781b ldrb r3, [r3, #0] 80036d2: b2db uxtb r3, r3 80036d4: 2b09 cmp r3, #9 80036d6: f040 80d1 bne.w 800387c if(ikd) { 80036da: 68fb ldr r3, [r7, #12] 80036dc: 2b00 cmp r3, #0 80036de: d002 beq.n 80036e6 ikd--; 80036e0: 68fb ldr r3, [r7, #12] 80036e2: 3b01 subs r3, #1 80036e4: 60fb str r3, [r7, #12] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 80036e6: 69bb ldr r3, [r7, #24] 80036e8: f242 7210 movw r2, #10000 ; 0x2710 80036ec: fb02 f203 mul.w r2, r2, r3 80036f0: 697b ldr r3, [r7, #20] 80036f2: f44f 717a mov.w r1, #1000 ; 0x3e8 80036f6: fb01 f303 mul.w r3, r1, r3 80036fa: 18d1 adds r1, r2, r3 80036fc: 68fa ldr r2, [r7, #12] 80036fe: 4613 mov r3, r2 8003700: 009b lsls r3, r3, #2 8003702: 4413 add r3, r2 8003704: 005b lsls r3, r3, #1 8003706: 4618 mov r0, r3 8003708: 693b ldr r3, [r7, #16] 800370a: 2264 movs r2, #100 ; 0x64 800370c: fb02 f303 mul.w r3, r2, r3 8003710: 4403 add r3, r0 8003712: 18ca adds r2, r1, r3 8003714: 68bb ldr r3, [r7, #8] 8003716: 4413 add r3, r2 8003718: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 800371a: 4b1c ldr r3, [pc, #112] ; (800378c ) 800371c: 681b ldr r3, [r3, #0] 800371e: 69fa ldr r2, [r7, #28] 8003720: ee07 2a90 vmov s15, r2 8003724: eef8 7a67 vcvt.f32.u32 s15, s15 8003728: 4a19 ldr r2, [pc, #100] ; (8003790 ) 800372a: 015b lsls r3, r3, #5 800372c: 4413 add r3, r2 800372e: 3318 adds r3, #24 8003730: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003734: 687b ldr r3, [r7, #4] 8003736: 2b01 cmp r3, #1 8003738: d112 bne.n 8003760 800373a: 4b14 ldr r3, [pc, #80] ; (800378c ) 800373c: 681b ldr r3, [r3, #0] 800373e: 4914 ldr r1, [pc, #80] ; (8003790 ) 8003740: 015a lsls r2, r3, #5 8003742: 440a add r2, r1 8003744: 3218 adds r2, #24 8003746: edd2 7a00 vldr s15, [r2] 800374a: ed9f 7a17 vldr s14, [pc, #92] ; 80037a8 800374e: ee67 7a87 vmul.f32 s15, s15, s14 8003752: 4a0f ldr r2, [pc, #60] ; (8003790 ) 8003754: 015b lsls r3, r3, #5 8003756: 4413 add r3, r2 8003758: 3318 adds r3, #24 800375a: edc3 7a00 vstr s15, [r3] 800375e: e054 b.n 800380a else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003760: 687b ldr r3, [r7, #4] 8003762: 2b02 cmp r3, #2 8003764: d126 bne.n 80037b4 8003766: 4b09 ldr r3, [pc, #36] ; (800378c ) 8003768: 681b ldr r3, [r3, #0] 800376a: 4909 ldr r1, [pc, #36] ; (8003790 ) 800376c: 015a lsls r2, r3, #5 800376e: 440a add r2, r1 8003770: 3218 adds r2, #24 8003772: edd2 7a00 vldr s15, [r2] 8003776: ed9f 7a0d vldr s14, [pc, #52] ; 80037ac 800377a: ee67 7a87 vmul.f32 s15, s15, s14 800377e: 4a04 ldr r2, [pc, #16] ; (8003790 ) 8003780: 015b lsls r3, r3, #5 8003782: 4413 add r3, r2 8003784: 3318 adds r3, #24 8003786: edc3 7a00 vstr s15, [r3] 800378a: e03e b.n 800380a 800378c: 2006b2d0 .word 0x2006b2d0 8003790: 2006b510 .word 0x2006b510 8003794: 38d1b717 .word 0x38d1b717 8003798: 38d1b717 .word 0x38d1b717 800379c: 47c35000 .word 0x47c35000 80037a0: 47c34f80 .word 0x47c34f80 80037a4: 20020010 .word 0x20020010 80037a8: 3dcccccd .word 0x3dcccccd 80037ac: 3c23d70a .word 0x3c23d70a 80037b0: 3a83126f .word 0x3a83126f else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 80037b4: 687b ldr r3, [r7, #4] 80037b6: 2b03 cmp r3, #3 80037b8: d112 bne.n 80037e0 80037ba: 4bb6 ldr r3, [pc, #728] ; (8003a94 ) 80037bc: 681b ldr r3, [r3, #0] 80037be: 49b6 ldr r1, [pc, #728] ; (8003a98 ) 80037c0: 015a lsls r2, r3, #5 80037c2: 440a add r2, r1 80037c4: 3218 adds r2, #24 80037c6: edd2 7a00 vldr s15, [r2] 80037ca: ed9f 7ab4 vldr s14, [pc, #720] ; 8003a9c 80037ce: ee67 7a87 vmul.f32 s15, s15, s14 80037d2: 4ab1 ldr r2, [pc, #708] ; (8003a98 ) 80037d4: 015b lsls r3, r3, #5 80037d6: 4413 add r3, r2 80037d8: 3318 adds r3, #24 80037da: edc3 7a00 vstr s15, [r3] 80037de: e014 b.n 800380a else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 80037e0: 687b ldr r3, [r7, #4] 80037e2: 2b04 cmp r3, #4 80037e4: d111 bne.n 800380a 80037e6: 4bab ldr r3, [pc, #684] ; (8003a94 ) 80037e8: 681b ldr r3, [r3, #0] 80037ea: 49ab ldr r1, [pc, #684] ; (8003a98 ) 80037ec: 015a lsls r2, r3, #5 80037ee: 440a add r2, r1 80037f0: 3218 adds r2, #24 80037f2: edd2 7a00 vldr s15, [r2] 80037f6: ed9f 7aaa vldr s14, [pc, #680] ; 8003aa0 80037fa: ee67 7a87 vmul.f32 s15, s15, s14 80037fe: 4aa6 ldr r2, [pc, #664] ; (8003a98 ) 8003800: 015b lsls r3, r3, #5 8003802: 4413 add r3, r2 8003804: 3318 adds r3, #24 8003806: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 800380a: 4ba2 ldr r3, [pc, #648] ; (8003a94 ) 800380c: 681b ldr r3, [r3, #0] 800380e: 4aa2 ldr r2, [pc, #648] ; (8003a98 ) 8003810: 015b lsls r3, r3, #5 8003812: 4413 add r3, r2 8003814: 3318 adds r3, #24 8003816: edd3 7a00 vldr s15, [r3] 800381a: eef5 7ac0 vcmpe.f32 s15, #0.0 800381e: eef1 fa10 vmrs APSR_nzcv, fpscr 8003822: d807 bhi.n 8003834 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8003824: 4b9b ldr r3, [pc, #620] ; (8003a94 ) 8003826: 681b ldr r3, [r3, #0] 8003828: 4a9b ldr r2, [pc, #620] ; (8003a98 ) 800382a: 015b lsls r3, r3, #5 800382c: 4413 add r3, r2 800382e: 3318 adds r3, #24 8003830: 4a9c ldr r2, [pc, #624] ; (8003aa4 ) 8003832: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003834: 4b97 ldr r3, [pc, #604] ; (8003a94 ) 8003836: 681b ldr r3, [r3, #0] 8003838: 4a97 ldr r2, [pc, #604] ; (8003a98 ) 800383a: 015b lsls r3, r3, #5 800383c: 4413 add r3, r2 800383e: 3318 adds r3, #24 8003840: edd3 7a00 vldr s15, [r3] 8003844: ed9f 7a98 vldr s14, [pc, #608] ; 8003aa8 8003848: eef4 7ac7 vcmpe.f32 s15, s14 800384c: eef1 fa10 vmrs APSR_nzcv, fpscr 8003850: db07 blt.n 8003862 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8003852: 4b90 ldr r3, [pc, #576] ; (8003a94 ) 8003854: 681b ldr r3, [r3, #0] 8003856: 4a90 ldr r2, [pc, #576] ; (8003a98 ) 8003858: 015b lsls r3, r3, #5 800385a: 4413 add r3, r2 800385c: 3318 adds r3, #24 800385e: 4a93 ldr r2, [pc, #588] ; (8003aac ) 8003860: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8003862: 4b8c ldr r3, [pc, #560] ; (8003a94 ) 8003864: 681b ldr r3, [r3, #0] 8003866: 4a8c ldr r2, [pc, #560] ; (8003a98 ) 8003868: 015b lsls r3, r3, #5 800386a: 4413 add r3, r2 800386c: 3318 adds r3, #24 800386e: edd3 7a00 vldr s15, [r3] 8003872: eeb0 0a67 vmov.f32 s0, s15 8003876: f000 f9af bl 8003bd8 } 800387a: e198 b.n 8003bae if(menupos == Kike) 800387c: 4b8c ldr r3, [pc, #560] ; (8003ab0 ) 800387e: 781b ldrb r3, [r3, #0] 8003880: b2db uxtb r3, r3 8003882: 2b0a cmp r3, #10 8003884: f040 80bd bne.w 8003a02 if(ike) { 8003888: 68bb ldr r3, [r7, #8] 800388a: 2b00 cmp r3, #0 800388c: d002 beq.n 8003894 ike--; 800388e: 68bb ldr r3, [r7, #8] 8003890: 3b01 subs r3, #1 8003892: 60bb str r3, [r7, #8] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003894: 69bb ldr r3, [r7, #24] 8003896: f242 7210 movw r2, #10000 ; 0x2710 800389a: fb02 f203 mul.w r2, r2, r3 800389e: 697b ldr r3, [r7, #20] 80038a0: f44f 717a mov.w r1, #1000 ; 0x3e8 80038a4: fb01 f303 mul.w r3, r1, r3 80038a8: 18d1 adds r1, r2, r3 80038aa: 68fa ldr r2, [r7, #12] 80038ac: 4613 mov r3, r2 80038ae: 009b lsls r3, r3, #2 80038b0: 4413 add r3, r2 80038b2: 005b lsls r3, r3, #1 80038b4: 4618 mov r0, r3 80038b6: 693b ldr r3, [r7, #16] 80038b8: 2264 movs r2, #100 ; 0x64 80038ba: fb02 f303 mul.w r3, r2, r3 80038be: 4403 add r3, r0 80038c0: 18ca adds r2, r1, r3 80038c2: 68bb ldr r3, [r7, #8] 80038c4: 4413 add r3, r2 80038c6: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 80038c8: 4b72 ldr r3, [pc, #456] ; (8003a94 ) 80038ca: 681b ldr r3, [r3, #0] 80038cc: 69fa ldr r2, [r7, #28] 80038ce: ee07 2a90 vmov s15, r2 80038d2: eef8 7a67 vcvt.f32.u32 s15, s15 80038d6: 4a70 ldr r2, [pc, #448] ; (8003a98 ) 80038d8: 015b lsls r3, r3, #5 80038da: 4413 add r3, r2 80038dc: 3318 adds r3, #24 80038de: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 80038e2: 687b ldr r3, [r7, #4] 80038e4: 2b01 cmp r3, #1 80038e6: d112 bne.n 800390e 80038e8: 4b6a ldr r3, [pc, #424] ; (8003a94 ) 80038ea: 681b ldr r3, [r3, #0] 80038ec: 496a ldr r1, [pc, #424] ; (8003a98 ) 80038ee: 015a lsls r2, r3, #5 80038f0: 440a add r2, r1 80038f2: 3218 adds r2, #24 80038f4: edd2 7a00 vldr s15, [r2] 80038f8: ed9f 7a6e vldr s14, [pc, #440] ; 8003ab4 80038fc: ee67 7a87 vmul.f32 s15, s15, s14 8003900: 4a65 ldr r2, [pc, #404] ; (8003a98 ) 8003902: 015b lsls r3, r3, #5 8003904: 4413 add r3, r2 8003906: 3318 adds r3, #24 8003908: edc3 7a00 vstr s15, [r3] 800390c: e040 b.n 8003990 else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 800390e: 687b ldr r3, [r7, #4] 8003910: 2b02 cmp r3, #2 8003912: d112 bne.n 800393a 8003914: 4b5f ldr r3, [pc, #380] ; (8003a94 ) 8003916: 681b ldr r3, [r3, #0] 8003918: 495f ldr r1, [pc, #380] ; (8003a98 ) 800391a: 015a lsls r2, r3, #5 800391c: 440a add r2, r1 800391e: 3218 adds r2, #24 8003920: edd2 7a00 vldr s15, [r2] 8003924: ed9f 7a64 vldr s14, [pc, #400] ; 8003ab8 8003928: ee67 7a87 vmul.f32 s15, s15, s14 800392c: 4a5a ldr r2, [pc, #360] ; (8003a98 ) 800392e: 015b lsls r3, r3, #5 8003930: 4413 add r3, r2 8003932: 3318 adds r3, #24 8003934: edc3 7a00 vstr s15, [r3] 8003938: e02a b.n 8003990 else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 800393a: 687b ldr r3, [r7, #4] 800393c: 2b03 cmp r3, #3 800393e: d112 bne.n 8003966 8003940: 4b54 ldr r3, [pc, #336] ; (8003a94 ) 8003942: 681b ldr r3, [r3, #0] 8003944: 4954 ldr r1, [pc, #336] ; (8003a98 ) 8003946: 015a lsls r2, r3, #5 8003948: 440a add r2, r1 800394a: 3218 adds r2, #24 800394c: edd2 7a00 vldr s15, [r2] 8003950: ed9f 7a52 vldr s14, [pc, #328] ; 8003a9c 8003954: ee67 7a87 vmul.f32 s15, s15, s14 8003958: 4a4f ldr r2, [pc, #316] ; (8003a98 ) 800395a: 015b lsls r3, r3, #5 800395c: 4413 add r3, r2 800395e: 3318 adds r3, #24 8003960: edc3 7a00 vstr s15, [r3] 8003964: e014 b.n 8003990 else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003966: 687b ldr r3, [r7, #4] 8003968: 2b04 cmp r3, #4 800396a: d111 bne.n 8003990 800396c: 4b49 ldr r3, [pc, #292] ; (8003a94 ) 800396e: 681b ldr r3, [r3, #0] 8003970: 4949 ldr r1, [pc, #292] ; (8003a98 ) 8003972: 015a lsls r2, r3, #5 8003974: 440a add r2, r1 8003976: 3218 adds r2, #24 8003978: edd2 7a00 vldr s15, [r2] 800397c: ed9f 7a48 vldr s14, [pc, #288] ; 8003aa0 8003980: ee67 7a87 vmul.f32 s15, s15, s14 8003984: 4a44 ldr r2, [pc, #272] ; (8003a98 ) 8003986: 015b lsls r3, r3, #5 8003988: 4413 add r3, r2 800398a: 3318 adds r3, #24 800398c: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8003990: 4b40 ldr r3, [pc, #256] ; (8003a94 ) 8003992: 681b ldr r3, [r3, #0] 8003994: 4a40 ldr r2, [pc, #256] ; (8003a98 ) 8003996: 015b lsls r3, r3, #5 8003998: 4413 add r3, r2 800399a: 3318 adds r3, #24 800399c: edd3 7a00 vldr s15, [r3] 80039a0: eef5 7ac0 vcmpe.f32 s15, #0.0 80039a4: eef1 fa10 vmrs APSR_nzcv, fpscr 80039a8: d807 bhi.n 80039ba pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 80039aa: 4b3a ldr r3, [pc, #232] ; (8003a94 ) 80039ac: 681b ldr r3, [r3, #0] 80039ae: 4a3a ldr r2, [pc, #232] ; (8003a98 ) 80039b0: 015b lsls r3, r3, #5 80039b2: 4413 add r3, r2 80039b4: 3318 adds r3, #24 80039b6: 4a3b ldr r2, [pc, #236] ; (8003aa4 ) 80039b8: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 80039ba: 4b36 ldr r3, [pc, #216] ; (8003a94 ) 80039bc: 681b ldr r3, [r3, #0] 80039be: 4a36 ldr r2, [pc, #216] ; (8003a98 ) 80039c0: 015b lsls r3, r3, #5 80039c2: 4413 add r3, r2 80039c4: 3318 adds r3, #24 80039c6: edd3 7a00 vldr s15, [r3] 80039ca: ed9f 7a37 vldr s14, [pc, #220] ; 8003aa8 80039ce: eef4 7ac7 vcmpe.f32 s15, s14 80039d2: eef1 fa10 vmrs APSR_nzcv, fpscr 80039d6: db07 blt.n 80039e8 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 80039d8: 4b2e ldr r3, [pc, #184] ; (8003a94 ) 80039da: 681b ldr r3, [r3, #0] 80039dc: 4a2e ldr r2, [pc, #184] ; (8003a98 ) 80039de: 015b lsls r3, r3, #5 80039e0: 4413 add r3, r2 80039e2: 3318 adds r3, #24 80039e4: 4a31 ldr r2, [pc, #196] ; (8003aac ) 80039e6: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 80039e8: 4b2a ldr r3, [pc, #168] ; (8003a94 ) 80039ea: 681b ldr r3, [r3, #0] 80039ec: 4a2a ldr r2, [pc, #168] ; (8003a98 ) 80039ee: 015b lsls r3, r3, #5 80039f0: 4413 add r3, r2 80039f2: 3318 adds r3, #24 80039f4: edd3 7a00 vldr s15, [r3] 80039f8: eeb0 0a67 vmov.f32 s0, s15 80039fc: f000 f8ec bl 8003bd8 } 8003a00: e0d5 b.n 8003bae if(menupos == Kpt) 8003a02: 4b2b ldr r3, [pc, #172] ; (8003ab0 ) 8003a04: 781b ldrb r3, [r3, #0] 8003a06: b2db uxtb r3, r3 8003a08: 2b0b cmp r3, #11 8003a0a: f040 80d0 bne.w 8003bae if(ipt < 4) { 8003a0e: 687b ldr r3, [r7, #4] 8003a10: 2b03 cmp r3, #3 8003a12: d802 bhi.n 8003a1a ipt++; 8003a14: 687b ldr r3, [r7, #4] 8003a16: 3301 adds r3, #1 8003a18: 607b str r3, [r7, #4] s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike); 8003a1a: 69bb ldr r3, [r7, #24] 8003a1c: f242 7210 movw r2, #10000 ; 0x2710 8003a20: fb02 f203 mul.w r2, r2, r3 8003a24: 697b ldr r3, [r7, #20] 8003a26: f44f 717a mov.w r1, #1000 ; 0x3e8 8003a2a: fb01 f303 mul.w r3, r1, r3 8003a2e: 18d1 adds r1, r2, r3 8003a30: 68fa ldr r2, [r7, #12] 8003a32: 4613 mov r3, r2 8003a34: 009b lsls r3, r3, #2 8003a36: 4413 add r3, r2 8003a38: 005b lsls r3, r3, #1 8003a3a: 4618 mov r0, r3 8003a3c: 693b ldr r3, [r7, #16] 8003a3e: 2264 movs r2, #100 ; 0x64 8003a40: fb02 f303 mul.w r3, r2, r3 8003a44: 4403 add r3, r0 8003a46: 18ca adds r2, r1, r3 8003a48: 68bb ldr r3, [r7, #8] 8003a4a: 4413 add r3, r2 8003a4c: 61fb str r3, [r7, #28] pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s; 8003a4e: 4b11 ldr r3, [pc, #68] ; (8003a94 ) 8003a50: 681b ldr r3, [r3, #0] 8003a52: 69fa ldr r2, [r7, #28] 8003a54: ee07 2a90 vmov s15, r2 8003a58: eef8 7a67 vcvt.f32.u32 s15, s15 8003a5c: 4a0e ldr r2, [pc, #56] ; (8003a98 ) 8003a5e: 015b lsls r3, r3, #5 8003a60: 4413 add r3, r2 8003a62: 3318 adds r3, #24 8003a64: edc3 7a00 vstr s15, [r3] if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f; 8003a68: 687b ldr r3, [r7, #4] 8003a6a: 2b01 cmp r3, #1 8003a6c: d126 bne.n 8003abc 8003a6e: 4b09 ldr r3, [pc, #36] ; (8003a94 ) 8003a70: 681b ldr r3, [r3, #0] 8003a72: 4909 ldr r1, [pc, #36] ; (8003a98 ) 8003a74: 015a lsls r2, r3, #5 8003a76: 440a add r2, r1 8003a78: 3218 adds r2, #24 8003a7a: edd2 7a00 vldr s15, [r2] 8003a7e: ed9f 7a0d vldr s14, [pc, #52] ; 8003ab4 8003a82: ee67 7a87 vmul.f32 s15, s15, s14 8003a86: 4a04 ldr r2, [pc, #16] ; (8003a98 ) 8003a88: 015b lsls r3, r3, #5 8003a8a: 4413 add r3, r2 8003a8c: 3318 adds r3, #24 8003a8e: edc3 7a00 vstr s15, [r3] 8003a92: e054 b.n 8003b3e 8003a94: 2006b2d0 .word 0x2006b2d0 8003a98: 2006b510 .word 0x2006b510 8003a9c: 3a83126f .word 0x3a83126f 8003aa0: 38d1b717 .word 0x38d1b717 8003aa4: 38d1b717 .word 0x38d1b717 8003aa8: 47c35000 .word 0x47c35000 8003aac: 47c34f80 .word 0x47c34f80 8003ab0: 20020010 .word 0x20020010 8003ab4: 3dcccccd .word 0x3dcccccd 8003ab8: 3c23d70a .word 0x3c23d70a else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f; 8003abc: 687b ldr r3, [r7, #4] 8003abe: 2b02 cmp r3, #2 8003ac0: d112 bne.n 8003ae8 8003ac2: 4b3d ldr r3, [pc, #244] ; (8003bb8 ) 8003ac4: 681b ldr r3, [r3, #0] 8003ac6: 493d ldr r1, [pc, #244] ; (8003bbc ) 8003ac8: 015a lsls r2, r3, #5 8003aca: 440a add r2, r1 8003acc: 3218 adds r2, #24 8003ace: edd2 7a00 vldr s15, [r2] 8003ad2: ed9f 7a3b vldr s14, [pc, #236] ; 8003bc0 8003ad6: ee67 7a87 vmul.f32 s15, s15, s14 8003ada: 4a38 ldr r2, [pc, #224] ; (8003bbc ) 8003adc: 015b lsls r3, r3, #5 8003ade: 4413 add r3, r2 8003ae0: 3318 adds r3, #24 8003ae2: edc3 7a00 vstr s15, [r3] 8003ae6: e02a b.n 8003b3e else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f; 8003ae8: 687b ldr r3, [r7, #4] 8003aea: 2b03 cmp r3, #3 8003aec: d112 bne.n 8003b14 8003aee: 4b32 ldr r3, [pc, #200] ; (8003bb8 ) 8003af0: 681b ldr r3, [r3, #0] 8003af2: 4932 ldr r1, [pc, #200] ; (8003bbc ) 8003af4: 015a lsls r2, r3, #5 8003af6: 440a add r2, r1 8003af8: 3218 adds r2, #24 8003afa: edd2 7a00 vldr s15, [r2] 8003afe: ed9f 7a31 vldr s14, [pc, #196] ; 8003bc4 8003b02: ee67 7a87 vmul.f32 s15, s15, s14 8003b06: 4a2d ldr r2, [pc, #180] ; (8003bbc ) 8003b08: 015b lsls r3, r3, #5 8003b0a: 4413 add r3, r2 8003b0c: 3318 adds r3, #24 8003b0e: edc3 7a00 vstr s15, [r3] 8003b12: e014 b.n 8003b3e else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f; 8003b14: 687b ldr r3, [r7, #4] 8003b16: 2b04 cmp r3, #4 8003b18: d111 bne.n 8003b3e 8003b1a: 4b27 ldr r3, [pc, #156] ; (8003bb8 ) 8003b1c: 681b ldr r3, [r3, #0] 8003b1e: 4927 ldr r1, [pc, #156] ; (8003bbc ) 8003b20: 015a lsls r2, r3, #5 8003b22: 440a add r2, r1 8003b24: 3218 adds r2, #24 8003b26: edd2 7a00 vldr s15, [r2] 8003b2a: ed9f 7a27 vldr s14, [pc, #156] ; 8003bc8 8003b2e: ee67 7a87 vmul.f32 s15, s15, s14 8003b32: 4a22 ldr r2, [pc, #136] ; (8003bbc ) 8003b34: 015b lsls r3, r3, #5 8003b36: 4413 add r3, r2 8003b38: 3318 adds r3, #24 8003b3a: edc3 7a00 vstr s15, [r3] if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) { 8003b3e: 4b1e ldr r3, [pc, #120] ; (8003bb8 ) 8003b40: 681b ldr r3, [r3, #0] 8003b42: 4a1e ldr r2, [pc, #120] ; (8003bbc ) 8003b44: 015b lsls r3, r3, #5 8003b46: 4413 add r3, r2 8003b48: 3318 adds r3, #24 8003b4a: edd3 7a00 vldr s15, [r3] 8003b4e: eef5 7ac0 vcmpe.f32 s15, #0.0 8003b52: eef1 fa10 vmrs APSR_nzcv, fpscr 8003b56: d807 bhi.n 8003b68 pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f; 8003b58: 4b17 ldr r3, [pc, #92] ; (8003bb8 ) 8003b5a: 681b ldr r3, [r3, #0] 8003b5c: 4a17 ldr r2, [pc, #92] ; (8003bbc ) 8003b5e: 015b lsls r3, r3, #5 8003b60: 4413 add r3, r2 8003b62: 3318 adds r3, #24 8003b64: 4a19 ldr r2, [pc, #100] ; (8003bcc ) 8003b66: 601a str r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8003b68: 4b13 ldr r3, [pc, #76] ; (8003bb8 ) 8003b6a: 681b ldr r3, [r3, #0] 8003b6c: 4a13 ldr r2, [pc, #76] ; (8003bbc ) 8003b6e: 015b lsls r3, r3, #5 8003b70: 4413 add r3, r2 8003b72: 3318 adds r3, #24 8003b74: edd3 7a00 vldr s15, [r3] 8003b78: ed9f 7a15 vldr s14, [pc, #84] ; 8003bd0 8003b7c: eef4 7ac7 vcmpe.f32 s15, s14 8003b80: eef1 fa10 vmrs APSR_nzcv, fpscr 8003b84: db07 blt.n 8003b96 pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8003b86: 4b0c ldr r3, [pc, #48] ; (8003bb8 ) 8003b88: 681b ldr r3, [r3, #0] 8003b8a: 4a0c ldr r2, [pc, #48] ; (8003bbc ) 8003b8c: 015b lsls r3, r3, #5 8003b8e: 4413 add r3, r2 8003b90: 3318 adds r3, #24 8003b92: 4a10 ldr r2, [pc, #64] ; (8003bd4 ) 8003b94: 601a str r2, [r3, #0] VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS); 8003b96: 4b08 ldr r3, [pc, #32] ; (8003bb8 ) 8003b98: 681b ldr r3, [r3, #0] 8003b9a: 4a08 ldr r2, [pc, #32] ; (8003bbc ) 8003b9c: 015b lsls r3, r3, #5 8003b9e: 4413 add r3, r2 8003ba0: 3318 adds r3, #24 8003ba2: edd3 7a00 vldr s15, [r3] 8003ba6: eeb0 0a67 vmov.f32 s0, s15 8003baa: f000 f815 bl 8003bd8 } 8003bae: bf00 nop 8003bb0: 3720 adds r7, #32 8003bb2: 46bd mov sp, r7 8003bb4: bd80 pop {r7, pc} 8003bb6: bf00 nop 8003bb8: 2006b2d0 .word 0x2006b2d0 8003bbc: 2006b510 .word 0x2006b510 8003bc0: 3c23d70a .word 0x3c23d70a 8003bc4: 3a83126f .word 0x3a83126f 8003bc8: 38d1b717 .word 0x38d1b717 8003bcc: 38d1b717 .word 0x38d1b717 8003bd0: 47c35000 .word 0x47c35000 8003bd4: 47c34f80 .word 0x47c34f80 08003bd8 : void VerifyGain(float32_t sens) { 8003bd8: b480 push {r7} 8003bda: b083 sub sp, #12 8003bdc: af00 add r7, sp, #0 8003bde: ed87 0a01 vstr s0, [r7, #4] if(sens <= 0.0010f) //0.001 8003be2: edd7 7a01 vldr s15, [r7, #4] 8003be6: ed9f 7aac vldr s14, [pc, #688] ; 8003e98 8003bea: eef4 7ac7 vcmpe.f32 s15, s14 8003bee: eef1 fa10 vmrs APSR_nzcv, fpscr 8003bf2: d813 bhi.n 8003c1c { if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1000) 8003bf4: 4ba9 ldr r3, [pc, #676] ; (8003e9c ) 8003bf6: 681b ldr r3, [r3, #0] 8003bf8: 4aa9 ldr r2, [pc, #676] ; (8003ea0 ) 8003bfa: 015b lsls r3, r3, #5 8003bfc: 4413 add r3, r2 8003bfe: 3306 adds r3, #6 8003c00: 881b ldrh r3, [r3, #0] 8003c02: b29b uxth r3, r3 8003c04: 2b0c cmp r3, #12 8003c06: f240 8199 bls.w 8003f3c { pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1000; 8003c0a: 4ba4 ldr r3, [pc, #656] ; (8003e9c ) 8003c0c: 681b ldr r3, [r3, #0] 8003c0e: 4aa4 ldr r2, [pc, #656] ; (8003ea0 ) 8003c10: 015b lsls r3, r3, #5 8003c12: 4413 add r3, r2 8003c14: 3306 adds r3, #6 8003c16: 220c movs r2, #12 8003c18: 801a strh r2, [r3, #0] if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1) { pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1; } } } 8003c1a: e18f b.n 8003f3c if(/*sens >= 0.0011f && */sens <= 10.000f) //0.002 8003c1c: edd7 7a01 vldr s15, [r7, #4] 8003c20: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8003c24: eef4 7ac7 vcmpe.f32 s15, s14 8003c28: eef1 fa10 vmrs APSR_nzcv, fpscr 8003c2c: d813 bhi.n 8003c56 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1000) 8003c2e: 4b9b ldr r3, [pc, #620] ; (8003e9c ) 8003c30: 681b ldr r3, [r3, #0] 8003c32: 4a9b ldr r2, [pc, #620] ; (8003ea0 ) 8003c34: 015b lsls r3, r3, #5 8003c36: 4413 add r3, r2 8003c38: 3306 adds r3, #6 8003c3a: 881b ldrh r3, [r3, #0] 8003c3c: b29b uxth r3, r3 8003c3e: 2b0c cmp r3, #12 8003c40: f240 817c bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1000; 8003c44: 4b95 ldr r3, [pc, #596] ; (8003e9c ) 8003c46: 681b ldr r3, [r3, #0] 8003c48: 4a95 ldr r2, [pc, #596] ; (8003ea0 ) 8003c4a: 015b lsls r3, r3, #5 8003c4c: 4413 add r3, r2 8003c4e: 3306 adds r3, #6 8003c50: 220c movs r2, #12 8003c52: 801a strh r2, [r3, #0] } 8003c54: e172 b.n 8003f3c if(/*sens >= 10.001f && */sens <= 20.000f) //20 8003c56: edd7 7a01 vldr s15, [r7, #4] 8003c5a: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0 8003c5e: eef4 7ac7 vcmpe.f32 s15, s14 8003c62: eef1 fa10 vmrs APSR_nzcv, fpscr 8003c66: d813 bhi.n 8003c90 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku500) 8003c68: 4b8c ldr r3, [pc, #560] ; (8003e9c ) 8003c6a: 681b ldr r3, [r3, #0] 8003c6c: 4a8c ldr r2, [pc, #560] ; (8003ea0 ) 8003c6e: 015b lsls r3, r3, #5 8003c70: 4413 add r3, r2 8003c72: 3306 adds r3, #6 8003c74: 881b ldrh r3, [r3, #0] 8003c76: b29b uxth r3, r3 8003c78: 2b0b cmp r3, #11 8003c7a: f240 815f bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku500; 8003c7e: 4b87 ldr r3, [pc, #540] ; (8003e9c ) 8003c80: 681b ldr r3, [r3, #0] 8003c82: 4a87 ldr r2, [pc, #540] ; (8003ea0 ) 8003c84: 015b lsls r3, r3, #5 8003c86: 4413 add r3, r2 8003c88: 3306 adds r3, #6 8003c8a: 220b movs r2, #11 8003c8c: 801a strh r2, [r3, #0] } 8003c8e: e155 b.n 8003f3c if(/*sens >= 20.001f && */sens <= 50.000f) //50 8003c90: edd7 7a01 vldr s15, [r7, #4] 8003c94: ed9f 7a83 vldr s14, [pc, #524] ; 8003ea4 8003c98: eef4 7ac7 vcmpe.f32 s15, s14 8003c9c: eef1 fa10 vmrs APSR_nzcv, fpscr 8003ca0: d813 bhi.n 8003cca if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku200) 8003ca2: 4b7e ldr r3, [pc, #504] ; (8003e9c ) 8003ca4: 681b ldr r3, [r3, #0] 8003ca6: 4a7e ldr r2, [pc, #504] ; (8003ea0 ) 8003ca8: 015b lsls r3, r3, #5 8003caa: 4413 add r3, r2 8003cac: 3306 adds r3, #6 8003cae: 881b ldrh r3, [r3, #0] 8003cb0: b29b uxth r3, r3 8003cb2: 2b0a cmp r3, #10 8003cb4: f240 8142 bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku200; 8003cb8: 4b78 ldr r3, [pc, #480] ; (8003e9c ) 8003cba: 681b ldr r3, [r3, #0] 8003cbc: 4a78 ldr r2, [pc, #480] ; (8003ea0 ) 8003cbe: 015b lsls r3, r3, #5 8003cc0: 4413 add r3, r2 8003cc2: 3306 adds r3, #6 8003cc4: 220a movs r2, #10 8003cc6: 801a strh r2, [r3, #0] } 8003cc8: e138 b.n 8003f3c if(/*sens >= 50.001f && */sens <= 100.00f) //100 8003cca: edd7 7a01 vldr s15, [r7, #4] 8003cce: ed9f 7a76 vldr s14, [pc, #472] ; 8003ea8 8003cd2: eef4 7ac7 vcmpe.f32 s15, s14 8003cd6: eef1 fa10 vmrs APSR_nzcv, fpscr 8003cda: d813 bhi.n 8003d04 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku100) 8003cdc: 4b6f ldr r3, [pc, #444] ; (8003e9c ) 8003cde: 681b ldr r3, [r3, #0] 8003ce0: 4a6f ldr r2, [pc, #444] ; (8003ea0 ) 8003ce2: 015b lsls r3, r3, #5 8003ce4: 4413 add r3, r2 8003ce6: 3306 adds r3, #6 8003ce8: 881b ldrh r3, [r3, #0] 8003cea: b29b uxth r3, r3 8003cec: 2b09 cmp r3, #9 8003cee: f240 8125 bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku100; 8003cf2: 4b6a ldr r3, [pc, #424] ; (8003e9c ) 8003cf4: 681b ldr r3, [r3, #0] 8003cf6: 4a6a ldr r2, [pc, #424] ; (8003ea0 ) 8003cf8: 015b lsls r3, r3, #5 8003cfa: 4413 add r3, r2 8003cfc: 3306 adds r3, #6 8003cfe: 2209 movs r2, #9 8003d00: 801a strh r2, [r3, #0] } 8003d02: e11b b.n 8003f3c if(/*sens >= 100.01f && */sens <= 200.00f) //200 8003d04: edd7 7a01 vldr s15, [r7, #4] 8003d08: ed9f 7a68 vldr s14, [pc, #416] ; 8003eac 8003d0c: eef4 7ac7 vcmpe.f32 s15, s14 8003d10: eef1 fa10 vmrs APSR_nzcv, fpscr 8003d14: d813 bhi.n 8003d3e if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku50) 8003d16: 4b61 ldr r3, [pc, #388] ; (8003e9c ) 8003d18: 681b ldr r3, [r3, #0] 8003d1a: 4a61 ldr r2, [pc, #388] ; (8003ea0 ) 8003d1c: 015b lsls r3, r3, #5 8003d1e: 4413 add r3, r2 8003d20: 3306 adds r3, #6 8003d22: 881b ldrh r3, [r3, #0] 8003d24: b29b uxth r3, r3 8003d26: 2b08 cmp r3, #8 8003d28: f240 8108 bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku50; 8003d2c: 4b5b ldr r3, [pc, #364] ; (8003e9c ) 8003d2e: 681b ldr r3, [r3, #0] 8003d30: 4a5b ldr r2, [pc, #364] ; (8003ea0 ) 8003d32: 015b lsls r3, r3, #5 8003d34: 4413 add r3, r2 8003d36: 3306 adds r3, #6 8003d38: 2208 movs r2, #8 8003d3a: 801a strh r2, [r3, #0] } 8003d3c: e0fe b.n 8003f3c if(/*sens >= 200.01f && */sens <= 500.00f) //500 8003d3e: edd7 7a01 vldr s15, [r7, #4] 8003d42: ed9f 7a5b vldr s14, [pc, #364] ; 8003eb0 8003d46: eef4 7ac7 vcmpe.f32 s15, s14 8003d4a: eef1 fa10 vmrs APSR_nzcv, fpscr 8003d4e: d813 bhi.n 8003d78 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku20) 8003d50: 4b52 ldr r3, [pc, #328] ; (8003e9c ) 8003d52: 681b ldr r3, [r3, #0] 8003d54: 4a52 ldr r2, [pc, #328] ; (8003ea0 ) 8003d56: 015b lsls r3, r3, #5 8003d58: 4413 add r3, r2 8003d5a: 3306 adds r3, #6 8003d5c: 881b ldrh r3, [r3, #0] 8003d5e: b29b uxth r3, r3 8003d60: 2b07 cmp r3, #7 8003d62: f240 80eb bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku20; 8003d66: 4b4d ldr r3, [pc, #308] ; (8003e9c ) 8003d68: 681b ldr r3, [r3, #0] 8003d6a: 4a4d ldr r2, [pc, #308] ; (8003ea0 ) 8003d6c: 015b lsls r3, r3, #5 8003d6e: 4413 add r3, r2 8003d70: 3306 adds r3, #6 8003d72: 2207 movs r2, #7 8003d74: 801a strh r2, [r3, #0] } 8003d76: e0e1 b.n 8003f3c if(/*sens >= 500.01f && */sens <= 1000.0f) //1000 8003d78: edd7 7a01 vldr s15, [r7, #4] 8003d7c: ed9f 7a4d vldr s14, [pc, #308] ; 8003eb4 8003d80: eef4 7ac7 vcmpe.f32 s15, s14 8003d84: eef1 fa10 vmrs APSR_nzcv, fpscr 8003d88: d813 bhi.n 8003db2 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku10) 8003d8a: 4b44 ldr r3, [pc, #272] ; (8003e9c ) 8003d8c: 681b ldr r3, [r3, #0] 8003d8e: 4a44 ldr r2, [pc, #272] ; (8003ea0 ) 8003d90: 015b lsls r3, r3, #5 8003d92: 4413 add r3, r2 8003d94: 3306 adds r3, #6 8003d96: 881b ldrh r3, [r3, #0] 8003d98: b29b uxth r3, r3 8003d9a: 2b06 cmp r3, #6 8003d9c: f240 80ce bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku10; 8003da0: 4b3e ldr r3, [pc, #248] ; (8003e9c ) 8003da2: 681b ldr r3, [r3, #0] 8003da4: 4a3e ldr r2, [pc, #248] ; (8003ea0 ) 8003da6: 015b lsls r3, r3, #5 8003da8: 4413 add r3, r2 8003daa: 3306 adds r3, #6 8003dac: 2206 movs r2, #6 8003dae: 801a strh r2, [r3, #0] } 8003db0: e0c4 b.n 8003f3c if(/*sens >= 1000.01f && */sens <= 2000.0f) //2000 8003db2: edd7 7a01 vldr s15, [r7, #4] 8003db6: ed9f 7a40 vldr s14, [pc, #256] ; 8003eb8 8003dba: eef4 7ac7 vcmpe.f32 s15, s14 8003dbe: eef1 fa10 vmrs APSR_nzcv, fpscr 8003dc2: d813 bhi.n 8003dec if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku5) 8003dc4: 4b35 ldr r3, [pc, #212] ; (8003e9c ) 8003dc6: 681b ldr r3, [r3, #0] 8003dc8: 4a35 ldr r2, [pc, #212] ; (8003ea0 ) 8003dca: 015b lsls r3, r3, #5 8003dcc: 4413 add r3, r2 8003dce: 3306 adds r3, #6 8003dd0: 881b ldrh r3, [r3, #0] 8003dd2: b29b uxth r3, r3 8003dd4: 2b05 cmp r3, #5 8003dd6: f240 80b1 bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku5; 8003dda: 4b30 ldr r3, [pc, #192] ; (8003e9c ) 8003ddc: 681b ldr r3, [r3, #0] 8003dde: 4a30 ldr r2, [pc, #192] ; (8003ea0 ) 8003de0: 015b lsls r3, r3, #5 8003de2: 4413 add r3, r2 8003de4: 3306 adds r3, #6 8003de6: 2205 movs r2, #5 8003de8: 801a strh r2, [r3, #0] } 8003dea: e0a7 b.n 8003f3c if(/*sens >= 2000.01f && */sens <= 5000.0f) //5000 8003dec: edd7 7a01 vldr s15, [r7, #4] 8003df0: ed9f 7a32 vldr s14, [pc, #200] ; 8003ebc 8003df4: eef4 7ac7 vcmpe.f32 s15, s14 8003df8: eef1 fa10 vmrs APSR_nzcv, fpscr 8003dfc: d813 bhi.n 8003e26 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku2) 8003dfe: 4b27 ldr r3, [pc, #156] ; (8003e9c ) 8003e00: 681b ldr r3, [r3, #0] 8003e02: 4a27 ldr r2, [pc, #156] ; (8003ea0 ) 8003e04: 015b lsls r3, r3, #5 8003e06: 4413 add r3, r2 8003e08: 3306 adds r3, #6 8003e0a: 881b ldrh r3, [r3, #0] 8003e0c: b29b uxth r3, r3 8003e0e: 2b04 cmp r3, #4 8003e10: f240 8094 bls.w 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku2; 8003e14: 4b21 ldr r3, [pc, #132] ; (8003e9c ) 8003e16: 681b ldr r3, [r3, #0] 8003e18: 4a21 ldr r2, [pc, #132] ; (8003ea0 ) 8003e1a: 015b lsls r3, r3, #5 8003e1c: 4413 add r3, r2 8003e1e: 3306 adds r3, #6 8003e20: 2204 movs r2, #4 8003e22: 801a strh r2, [r3, #0] } 8003e24: e08a b.n 8003f3c if(/*sens >= 5000.01f && */sens <= 10000.0f) //10000 8003e26: edd7 7a01 vldr s15, [r7, #4] 8003e2a: ed9f 7a25 vldr s14, [pc, #148] ; 8003ec0 8003e2e: eef4 7ac7 vcmpe.f32 s15, s14 8003e32: eef1 fa10 vmrs APSR_nzcv, fpscr 8003e36: d812 bhi.n 8003e5e if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1) 8003e38: 4b18 ldr r3, [pc, #96] ; (8003e9c ) 8003e3a: 681b ldr r3, [r3, #0] 8003e3c: 4a18 ldr r2, [pc, #96] ; (8003ea0 ) 8003e3e: 015b lsls r3, r3, #5 8003e40: 4413 add r3, r2 8003e42: 3306 adds r3, #6 8003e44: 881b ldrh r3, [r3, #0] 8003e46: b29b uxth r3, r3 8003e48: 2b03 cmp r3, #3 8003e4a: d977 bls.n 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku1; 8003e4c: 4b13 ldr r3, [pc, #76] ; (8003e9c ) 8003e4e: 681b ldr r3, [r3, #0] 8003e50: 4a13 ldr r2, [pc, #76] ; (8003ea0 ) 8003e52: 015b lsls r3, r3, #5 8003e54: 4413 add r3, r2 8003e56: 3306 adds r3, #6 8003e58: 2203 movs r2, #3 8003e5a: 801a strh r2, [r3, #0] } 8003e5c: e06e b.n 8003f3c if(/*sens >= 10001.0f && */sens <= 20000.0f) //20000 8003e5e: edd7 7a01 vldr s15, [r7, #4] 8003e62: ed9f 7a18 vldr s14, [pc, #96] ; 8003ec4 8003e66: eef4 7ac7 vcmpe.f32 s15, s14 8003e6a: eef1 fa10 vmrs APSR_nzcv, fpscr 8003e6e: d82d bhi.n 8003ecc if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_5) 8003e70: 4b0a ldr r3, [pc, #40] ; (8003e9c ) 8003e72: 681b ldr r3, [r3, #0] 8003e74: 4a0a ldr r2, [pc, #40] ; (8003ea0 ) 8003e76: 015b lsls r3, r3, #5 8003e78: 4413 add r3, r2 8003e7a: 3306 adds r3, #6 8003e7c: 881b ldrh r3, [r3, #0] 8003e7e: b29b uxth r3, r3 8003e80: 2b02 cmp r3, #2 8003e82: d95b bls.n 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_5; 8003e84: 4b05 ldr r3, [pc, #20] ; (8003e9c ) 8003e86: 681b ldr r3, [r3, #0] 8003e88: 4a05 ldr r2, [pc, #20] ; (8003ea0 ) 8003e8a: 015b lsls r3, r3, #5 8003e8c: 4413 add r3, r2 8003e8e: 3306 adds r3, #6 8003e90: 2202 movs r2, #2 8003e92: 801a strh r2, [r3, #0] } 8003e94: e052 b.n 8003f3c 8003e96: bf00 nop 8003e98: 3a83126f .word 0x3a83126f 8003e9c: 2006b2d0 .word 0x2006b2d0 8003ea0: 2006b510 .word 0x2006b510 8003ea4: 42480000 .word 0x42480000 8003ea8: 42c80000 .word 0x42c80000 8003eac: 43480000 .word 0x43480000 8003eb0: 43fa0000 .word 0x43fa0000 8003eb4: 447a0000 .word 0x447a0000 8003eb8: 44fa0000 .word 0x44fa0000 8003ebc: 459c4000 .word 0x459c4000 8003ec0: 461c4000 .word 0x461c4000 8003ec4: 469c4000 .word 0x469c4000 8003ec8: 47435000 .word 0x47435000 if(/*sens >= 20001.0f && */sens <= 50000.0f) //50000 8003ecc: edd7 7a01 vldr s15, [r7, #4] 8003ed0: ed1f 7a03 vldr s14, [pc, #-12] ; 8003ec8 8003ed4: eef4 7ac7 vcmpe.f32 s15, s14 8003ed8: eef1 fa10 vmrs APSR_nzcv, fpscr 8003edc: d812 bhi.n 8003f04 if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_2) 8003ede: 4b1a ldr r3, [pc, #104] ; (8003f48 ) 8003ee0: 681b ldr r3, [r3, #0] 8003ee2: 4a1a ldr r2, [pc, #104] ; (8003f4c ) 8003ee4: 015b lsls r3, r3, #5 8003ee6: 4413 add r3, r2 8003ee8: 3306 adds r3, #6 8003eea: 881b ldrh r3, [r3, #0] 8003eec: b29b uxth r3, r3 8003eee: 2b01 cmp r3, #1 8003ef0: d924 bls.n 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_2; 8003ef2: 4b15 ldr r3, [pc, #84] ; (8003f48 ) 8003ef4: 681b ldr r3, [r3, #0] 8003ef6: 4a15 ldr r2, [pc, #84] ; (8003f4c ) 8003ef8: 015b lsls r3, r3, #5 8003efa: 4413 add r3, r2 8003efc: 3306 adds r3, #6 8003efe: 2201 movs r2, #1 8003f00: 801a strh r2, [r3, #0] } 8003f02: e01b b.n 8003f3c if(sens < 100000.0f) //99999 8003f04: edd7 7a01 vldr s15, [r7, #4] 8003f08: ed9f 7a11 vldr s14, [pc, #68] ; 8003f50 8003f0c: eef4 7ac7 vcmpe.f32 s15, s14 8003f10: eef1 fa10 vmrs APSR_nzcv, fpscr 8003f14: d400 bmi.n 8003f18 } 8003f16: e011 b.n 8003f3c if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1) 8003f18: 4b0b ldr r3, [pc, #44] ; (8003f48 ) 8003f1a: 681b ldr r3, [r3, #0] 8003f1c: 4a0b ldr r2, [pc, #44] ; (8003f4c ) 8003f1e: 015b lsls r3, r3, #5 8003f20: 4413 add r3, r2 8003f22: 3306 adds r3, #6 8003f24: 881b ldrh r3, [r3, #0] 8003f26: b29b uxth r3, r3 8003f28: 2b00 cmp r3, #0 8003f2a: d007 beq.n 8003f3c pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1; 8003f2c: 4b06 ldr r3, [pc, #24] ; (8003f48 ) 8003f2e: 681b ldr r3, [r3, #0] 8003f30: 4a06 ldr r2, [pc, #24] ; (8003f4c ) 8003f32: 015b lsls r3, r3, #5 8003f34: 4413 add r3, r2 8003f36: 3306 adds r3, #6 8003f38: 2200 movs r2, #0 8003f3a: 801a strh r2, [r3, #0] } 8003f3c: bf00 nop 8003f3e: 370c adds r7, #12 8003f40: 46bd mov sp, r7 8003f42: f85d 7b04 ldr.w r7, [sp], #4 8003f46: 4770 bx lr 8003f48: 2006b2d0 .word 0x2006b2d0 8003f4c: 2006b510 .word 0x2006b510 8003f50: 47c35000 .word 0x47c35000 08003f54 : } void LTDC_Reset(void) { 8003f54: b580 push {r7, lr} 8003f56: af00 add r7, sp, #0 HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100); 8003f58: 2201 movs r2, #1 8003f5a: 2140 movs r1, #64 ; 0x40 8003f5c: 480b ldr r0, [pc, #44] ; (8003f8c ) 8003f5e: f00a fd93 bl 800ea88 8003f62: 2064 movs r0, #100 ; 0x64 8003f64: f009 fdaa bl 800dabc HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET); HAL_Delay(100); 8003f68: 2200 movs r2, #0 8003f6a: 2140 movs r1, #64 ; 0x40 8003f6c: 4807 ldr r0, [pc, #28] ; (8003f8c ) 8003f6e: f00a fd8b bl 800ea88 8003f72: 2064 movs r0, #100 ; 0x64 8003f74: f009 fda2 bl 800dabc HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100); 8003f78: 2201 movs r2, #1 8003f7a: 2140 movs r1, #64 ; 0x40 8003f7c: 4803 ldr r0, [pc, #12] ; (8003f8c ) 8003f7e: f00a fd83 bl 800ea88 8003f82: 2064 movs r0, #100 ; 0x64 8003f84: f009 fd9a bl 800dabc } 8003f88: bf00 nop 8003f8a: bd80 pop {r7, pc} 8003f8c: 40020c00 .word 0x40020c00 08003f90 : /* LTDC init function */ void MX_LTDC_Init(void) { 8003f90: b580 push {r7, lr} 8003f92: b09c sub sp, #112 ; 0x70 8003f94: af00 add r7, sp, #0 __IO uint32_t tickstart; // SET_BIT(RCC->CR, RCC_CR_PLLSAION); // HAL_Delay(100); LTDC_Reset(); 8003f96: f7ff ffdd bl 8003f54 __HAL_RCC_PLLSAI_ENABLE(); 8003f9a: 4a8c ldr r2, [pc, #560] ; (80041cc ) 8003f9c: 4b8b ldr r3, [pc, #556] ; (80041cc ) 8003f9e: 681b ldr r3, [r3, #0] 8003fa0: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 8003fa4: 6013 str r3, [r2, #0] tickstart = HAL_GetTick(); 8003fa6: f009 fd7d bl 800daa4 8003faa: 4603 mov r3, r0 8003fac: 607b str r3, [r7, #4] while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 8003fae: e008 b.n 8003fc2 { if((HAL_GetTick() - tickstart) >= PLLSAI_TIMEOUT_VALUE) { 8003fb0: f009 fd78 bl 800daa4 8003fb4: 4602 mov r2, r0 8003fb6: 687b ldr r3, [r7, #4] 8003fb8: 1ad3 subs r3, r2, r3 8003fba: 2b63 cmp r3, #99 ; 0x63 8003fbc: d901 bls.n 8003fc2 Error_Handler(); 8003fbe: f001 faeb bl 8005598 while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 8003fc2: 4b82 ldr r3, [pc, #520] ; (80041cc ) 8003fc4: 681b ldr r3, [r3, #0] 8003fc6: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 8003fca: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 8003fce: d1ef bne.n 8003fb0 } } hLtdcHandler.Instance = LTDC; 8003fd0: 4b7f ldr r3, [pc, #508] ; (80041d0 ) 8003fd2: 4a80 ldr r2, [pc, #512] ; (80041d4 ) 8003fd4: 601a str r2, [r3, #0] hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL; 8003fd6: 4b7e ldr r3, [pc, #504] ; (80041d0 ) 8003fd8: 2200 movs r2, #0 8003fda: 605a str r2, [r3, #4] hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL; 8003fdc: 4b7c ldr r3, [pc, #496] ; (80041d0 ) 8003fde: 2200 movs r2, #0 8003fe0: 609a str r2, [r3, #8] hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH; 8003fe2: 4b7b ldr r3, [pc, #492] ; (80041d0 ) 8003fe4: f04f 5200 mov.w r2, #536870912 ; 0x20000000 8003fe8: 60da str r2, [r3, #12] hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC; 8003fea: 4b79 ldr r3, [pc, #484] ; (80041d0 ) 8003fec: 2200 movs r2, #0 8003fee: 611a str r2, [r3, #16] hLtdcHandler.Init.HorizontalSync = 38; 8003ff0: 4b77 ldr r3, [pc, #476] ; (80041d0 ) 8003ff2: 2226 movs r2, #38 ; 0x26 8003ff4: 615a str r2, [r3, #20] hLtdcHandler.Init.VerticalSync = 4; 8003ff6: 4b76 ldr r3, [pc, #472] ; (80041d0 ) 8003ff8: 2204 movs r2, #4 8003ffa: 619a str r2, [r3, #24] hLtdcHandler.Init.AccumulatedHBP = 68; 8003ffc: 4b74 ldr r3, [pc, #464] ; (80041d0 ) 8003ffe: 2244 movs r2, #68 ; 0x44 8004000: 61da str r2, [r3, #28] hLtdcHandler.Init.AccumulatedVBP = 18; 8004002: 4b73 ldr r3, [pc, #460] ; (80041d0 ) 8004004: 2212 movs r2, #18 8004006: 621a str r2, [r3, #32] hLtdcHandler.Init.AccumulatedActiveW = 388; 8004008: 4b71 ldr r3, [pc, #452] ; (80041d0 ) 800400a: f44f 72c2 mov.w r2, #388 ; 0x184 800400e: 625a str r2, [r3, #36] ; 0x24 hLtdcHandler.Init.AccumulatedActiveH = 262; 8004010: 4b6f ldr r3, [pc, #444] ; (80041d0 ) 8004012: f44f 7283 mov.w r2, #262 ; 0x106 8004016: 629a str r2, [r3, #40] ; 0x28 hLtdcHandler.Init.TotalWidth = 408; 8004018: 4b6d ldr r3, [pc, #436] ; (80041d0 ) 800401a: f44f 72cc mov.w r2, #408 ; 0x198 800401e: 62da str r2, [r3, #44] ; 0x2c hLtdcHandler.Init.TotalHeigh = 263; 8004020: 4b6b ldr r3, [pc, #428] ; (80041d0 ) 8004022: f240 1207 movw r2, #263 ; 0x107 8004026: 631a str r2, [r3, #48] ; 0x30 hLtdcHandler.Init.Backcolor.Blue = 0; 8004028: 4b69 ldr r3, [pc, #420] ; (80041d0 ) 800402a: 2200 movs r2, #0 800402c: f883 2034 strb.w r2, [r3, #52] ; 0x34 hLtdcHandler.Init.Backcolor.Green = 0; 8004030: 4b67 ldr r3, [pc, #412] ; (80041d0 ) 8004032: 2200 movs r2, #0 8004034: f883 2035 strb.w r2, [r3, #53] ; 0x35 hLtdcHandler.Init.Backcolor.Red = 0; 8004038: 4b65 ldr r3, [pc, #404] ; (80041d0 ) 800403a: 2200 movs r2, #0 800403c: f883 2036 strb.w r2, [r3, #54] ; 0x36 if (HAL_LTDC_Init(&hLtdcHandler) != HAL_OK) { 8004040: 4863 ldr r0, [pc, #396] ; (80041d0 ) 8004042: f00a fd53 bl 800eaec 8004046: 4603 mov r3, r0 8004048: 2b00 cmp r3, #0 800404a: d001 beq.n 8004050 Error_Handler(); 800404c: f001 faa4 bl 8005598 } pLayerCfg.WindowX0 = 0; 8004050: 2300 movs r3, #0 8004052: 63fb str r3, [r7, #60] ; 0x3c pLayerCfg.WindowX1 = 320; 8004054: f44f 73a0 mov.w r3, #320 ; 0x140 8004058: 643b str r3, [r7, #64] ; 0x40 pLayerCfg.WindowY0 = 0; 800405a: 2300 movs r3, #0 800405c: 647b str r3, [r7, #68] ; 0x44 pLayerCfg.WindowY1 = 240; 800405e: 23f0 movs r3, #240 ; 0xf0 8004060: 64bb str r3, [r7, #72] ; 0x48 pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565; 8004062: 2302 movs r3, #2 8004064: 64fb str r3, [r7, #76] ; 0x4c pLayerCfg.Alpha = 255; 8004066: 23ff movs r3, #255 ; 0xff 8004068: 653b str r3, [r7, #80] ; 0x50 pLayerCfg.Alpha0 = 0; 800406a: 2300 movs r3, #0 800406c: 657b str r3, [r7, #84] ; 0x54 pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; 800406e: f44f 63c0 mov.w r3, #1536 ; 0x600 8004072: 65bb str r3, [r7, #88] ; 0x58 pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; 8004074: 2307 movs r3, #7 8004076: 65fb str r3, [r7, #92] ; 0x5c pLayerCfg.FBStartAdress = (uint32_t) &LAYER_1[0]; 8004078: 4b57 ldr r3, [pc, #348] ; (80041d8 ) 800407a: 663b str r3, [r7, #96] ; 0x60 pLayerCfg.ImageWidth = 320; 800407c: f44f 73a0 mov.w r3, #320 ; 0x140 8004080: 667b str r3, [r7, #100] ; 0x64 pLayerCfg.ImageHeight = 240; 8004082: 23f0 movs r3, #240 ; 0xf0 8004084: 66bb str r3, [r7, #104] ; 0x68 pLayerCfg.Backcolor.Blue = 0; 8004086: 2300 movs r3, #0 8004088: f887 306c strb.w r3, [r7, #108] ; 0x6c pLayerCfg.Backcolor.Green = 0; 800408c: 2300 movs r3, #0 800408e: f887 306d strb.w r3, [r7, #109] ; 0x6d pLayerCfg.Backcolor.Red = 0; 8004092: 2300 movs r3, #0 8004094: f887 306e strb.w r3, [r7, #110] ; 0x6e if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg, 0) != HAL_OK) { 8004098: f107 033c add.w r3, r7, #60 ; 0x3c 800409c: 2200 movs r2, #0 800409e: 4619 mov r1, r3 80040a0: 484b ldr r0, [pc, #300] ; (80041d0 ) 80040a2: f00a feab bl 800edfc 80040a6: 4603 mov r3, r0 80040a8: 2b00 cmp r3, #0 80040aa: d001 beq.n 80040b0 Error_Handler(); 80040ac: f001 fa74 bl 8005598 } pLayerCfg1.WindowX0 = 0; 80040b0: 2300 movs r3, #0 80040b2: 60bb str r3, [r7, #8] pLayerCfg1.WindowX1 = 320; 80040b4: f44f 73a0 mov.w r3, #320 ; 0x140 80040b8: 60fb str r3, [r7, #12] pLayerCfg1.WindowY0 = 0; 80040ba: 2300 movs r3, #0 80040bc: 613b str r3, [r7, #16] pLayerCfg1.WindowY1 = 240; 80040be: 23f0 movs r3, #240 ; 0xf0 80040c0: 617b str r3, [r7, #20] pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565; 80040c2: 2302 movs r3, #2 80040c4: 61bb str r3, [r7, #24] pLayerCfg1.Alpha = 255; 80040c6: 23ff movs r3, #255 ; 0xff 80040c8: 61fb str r3, [r7, #28] pLayerCfg1.Alpha0 = 0; 80040ca: 2300 movs r3, #0 80040cc: 623b str r3, [r7, #32] pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; 80040ce: f44f 63c0 mov.w r3, #1536 ; 0x600 80040d2: 627b str r3, [r7, #36] ; 0x24 pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA; 80040d4: 2307 movs r3, #7 80040d6: 62bb str r3, [r7, #40] ; 0x28 pLayerCfg1.FBStartAdress = (uint32_t) &LAYER_2[0]; 80040d8: 4b40 ldr r3, [pc, #256] ; (80041dc ) 80040da: 62fb str r3, [r7, #44] ; 0x2c pLayerCfg1.ImageWidth = 320; 80040dc: f44f 73a0 mov.w r3, #320 ; 0x140 80040e0: 633b str r3, [r7, #48] ; 0x30 pLayerCfg1.ImageHeight = 240; 80040e2: 23f0 movs r3, #240 ; 0xf0 80040e4: 637b str r3, [r7, #52] ; 0x34 pLayerCfg1.Backcolor.Blue = 0; 80040e6: 2300 movs r3, #0 80040e8: f887 3038 strb.w r3, [r7, #56] ; 0x38 pLayerCfg1.Backcolor.Green = 0; 80040ec: 2300 movs r3, #0 80040ee: f887 3039 strb.w r3, [r7, #57] ; 0x39 pLayerCfg1.Backcolor.Red = 0; 80040f2: 2300 movs r3, #0 80040f4: f887 303a strb.w r3, [r7, #58] ; 0x3a if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg1, 1) != HAL_OK) { 80040f8: f107 0308 add.w r3, r7, #8 80040fc: 2201 movs r2, #1 80040fe: 4619 mov r1, r3 8004100: 4833 ldr r0, [pc, #204] ; (80041d0 ) 8004102: f00a fe7b bl 800edfc 8004106: 4603 mov r3, r0 8004108: 2b00 cmp r3, #0 800410a: d001 beq.n 8004110 Error_Handler(); 800410c: f001 fa44 bl 8005598 } //HAL_LTDC_EnableCLUT(&hLtdcHandler, 0); //HAL_LTDC_EnableCLUT(&hLtdcHandler, 1); ActiveLayer = 1; 8004110: 4b33 ldr r3, [pc, #204] ; (80041e0 ) 8004112: 2201 movs r2, #1 8004114: 601a str r2, [r3, #0] RenderingLayer = 0; 8004116: 4b33 ldr r3, [pc, #204] ; (80041e4 ) 8004118: 2200 movs r2, #0 800411a: 601a str r2, [r3, #0] BSP_LCD_DisplayOff(); 800411c: f000 f87a bl 8004214 BSP_LCD_SelectLayer(0); 8004120: 2000 movs r0, #0 8004122: f000 f961 bl 80043e8 BSP_LCD_Clear(0xFF000000); 8004126: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800412a: f000 fa3f bl 80045ac BSP_LCD_SelectLayer(1); 800412e: 2001 movs r0, #1 8004130: f000 f95a bl 80043e8 BSP_LCD_Clear(0xFF000000); 8004134: f04f 407f mov.w r0, #4278190080 ; 0xff000000 8004138: f000 fa38 bl 80045ac BSP_LCD_SetLayerVisible(RenderingLayer, DISABLE); 800413c: 4b29 ldr r3, [pc, #164] ; (80041e4 ) 800413e: 681b ldr r3, [r3, #0] 8004140: 2100 movs r1, #0 8004142: 4618 mov r0, r3 8004144: f000 f960 bl 8004408 BSP_LCD_SetLayerVisible(ActiveLayer, DISABLE); 8004148: 4b25 ldr r3, [pc, #148] ; (80041e0 ) 800414a: 681b ldr r3, [r3, #0] 800414c: 2100 movs r1, #0 800414e: 4618 mov r0, r3 8004150: f000 f95a bl 8004408 HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE); 8004154: 2101 movs r1, #1 8004156: 481e ldr r0, [pc, #120] ; (80041d0 ) 8004158: f00a fec6 bl 800eee8 DrawProp[0].BackColor = LCD_COLOR_BLACK; 800415c: 4b22 ldr r3, [pc, #136] ; (80041e8 ) 800415e: f04f 427f mov.w r2, #4278190080 ; 0xff000000 8004162: 605a str r2, [r3, #4] DrawProp[0].pFont = &Font17; 8004164: 4b20 ldr r3, [pc, #128] ; (80041e8 ) 8004166: 4a21 ldr r2, [pc, #132] ; (80041ec ) 8004168: 609a str r2, [r3, #8] DrawProp[0].TextColor = LCD_COLOR_WHITE; 800416a: 4b1f ldr r3, [pc, #124] ; (80041e8 ) 800416c: f04f 32ff mov.w r2, #4294967295 8004170: 601a str r2, [r3, #0] DrawProp[1].BackColor = LCD_COLOR_BLACK; 8004172: 4b1d ldr r3, [pc, #116] ; (80041e8 ) 8004174: f04f 427f mov.w r2, #4278190080 ; 0xff000000 8004178: 611a str r2, [r3, #16] DrawProp[1].pFont = &Font17; 800417a: 4b1b ldr r3, [pc, #108] ; (80041e8 ) 800417c: 4a1b ldr r2, [pc, #108] ; (80041ec ) 800417e: 615a str r2, [r3, #20] DrawProp[1].TextColor = LCD_COLOR_WHITE; 8004180: 4b19 ldr r3, [pc, #100] ; (80041e8 ) 8004182: f04f 32ff mov.w r2, #4294967295 8004186: 60da str r2, [r3, #12] CurrentFont = &Font17; 8004188: 4b19 ldr r3, [pc, #100] ; (80041f0 ) 800418a: 4a18 ldr r2, [pc, #96] ; (80041ec ) 800418c: 601a str r2, [r3, #0] BSP_LCD_DisplayOn(); 800418e: f000 f835 bl 80041fc HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF 8004192: 2201 movs r2, #1 8004194: f44f 7180 mov.w r1, #256 ; 0x100 8004198: 4816 ldr r0, [pc, #88] ; (80041f4 ) 800419a: f00a fc75 bl 800ea88 RefreshScreen = true; 800419e: 4b16 ldr r3, [pc, #88] ; (80041f8 ) 80041a0: 2201 movs r2, #1 80041a2: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 255); 80041a4: 21ff movs r1, #255 ; 0xff 80041a6: 480a ldr r0, [pc, #40] ; (80041d0 ) 80041a8: f00a fe66 bl 800ee78 while(RefreshScreen); 80041ac: bf00 nop 80041ae: 4b12 ldr r3, [pc, #72] ; (80041f8 ) 80041b0: 781b ldrb r3, [r3, #0] 80041b2: b2db uxtb r3, r3 80041b4: 2b00 cmp r3, #0 80041b6: d1fa bne.n 80041ae BSP_LCD_SetLayerVisible(RenderingLayer, ENABLE); 80041b8: 4b0a ldr r3, [pc, #40] ; (80041e4 ) 80041ba: 681b ldr r3, [r3, #0] 80041bc: 2101 movs r1, #1 80041be: 4618 mov r0, r3 80041c0: f000 f922 bl 8004408 } 80041c4: bf00 nop 80041c6: 3770 adds r7, #112 ; 0x70 80041c8: 46bd mov sp, r7 80041ca: bd80 pop {r7, pc} 80041cc: 40023800 .word 0x40023800 80041d0: 2006b9dc .word 0x2006b9dc 80041d4: 40016800 .word 0x40016800 80041d8: 20020258 .word 0x20020258 80041dc: 20045a58 .word 0x20045a58 80041e0: 20020014 .word 0x20020014 80041e4: 2006b2c8 .word 0x2006b2c8 80041e8: 2006b2b0 .word 0x2006b2b0 80041ec: 20020008 .word 0x20020008 80041f0: 2006b9d8 .word 0x2006b9d8 80041f4: 40020000 .word 0x40020000 80041f8: 2006b2cc .word 0x2006b2cc 080041fc : void BSP_LCD_DisplayOn(void) { 80041fc: b580 push {r7, lr} 80041fe: af00 add r7, sp, #0 //__HAL_LTDC_ENABLE(&hLtdcHandler); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET); // DISPLAY_ON 8004200: 2201 movs r2, #1 8004202: f44f 6180 mov.w r1, #1024 ; 0x400 8004206: 4802 ldr r0, [pc, #8] ; (8004210 ) 8004208: f00a fc3e bl 800ea88 } 800420c: bf00 nop 800420e: bd80 pop {r7, pc} 8004210: 40021400 .word 0x40021400 08004214 : /** * @brief Disables the display. * @retval None */ void BSP_LCD_DisplayOff(void) { 8004214: b580 push {r7, lr} 8004216: af00 add r7, sp, #0 //__HAL_LTDC_DISABLE(&hLtdcHandler); HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); // DISPLAY_OFF 8004218: 2200 movs r2, #0 800421a: f44f 6180 mov.w r1, #1024 ; 0x400 800421e: 4802 ldr r0, [pc, #8] ; (8004228 ) 8004220: f00a fc32 bl 800ea88 } 8004224: bf00 nop 8004226: bd80 pop {r7, pc} 8004228: 40021400 .word 0x40021400 0800422c : void HAL_LTDC_MspInit(LTDC_HandleTypeDef* ltdcHandle) { 800422c: b580 push {r7, lr} 800422e: b088 sub sp, #32 8004230: af00 add r7, sp, #0 8004232: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct; if(ltdcHandle->Instance == LTDC) 8004234: 687b ldr r3, [r7, #4] 8004236: 681b ldr r3, [r3, #0] 8004238: 4a4f ldr r2, [pc, #316] ; (8004378 ) 800423a: 4293 cmp r3, r2 800423c: f040 8097 bne.w 800436e { __HAL_RCC_LTDC_CLK_ENABLE(); 8004240: 4a4e ldr r2, [pc, #312] ; (800437c ) 8004242: 4b4e ldr r3, [pc, #312] ; (800437c ) 8004244: 6c5b ldr r3, [r3, #68] ; 0x44 8004246: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 800424a: 6453 str r3, [r2, #68] ; 0x44 800424c: 4b4b ldr r3, [pc, #300] ; (800437c ) 800424e: 6c5b ldr r3, [r3, #68] ; 0x44 8004250: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 8004254: 60bb str r3, [r7, #8] 8004256: 68bb ldr r3, [r7, #8] PG7 ------> LTDC_CLK PG10 ------> LTDC_G3 PG11 ------> LTDC_B3 PG12 ------> LTDC_B4 */ GPIO_InitStruct.Pin = GPIO_PIN_10; 8004258: f44f 6380 mov.w r3, #1024 ; 0x400 800425c: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 800425e: 2301 movs r3, #1 8004260: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004262: 2300 movs r3, #0 8004264: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004266: 2303 movs r3, #3 8004268: 61bb str r3, [r7, #24] HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 800426a: f107 030c add.w r3, r7, #12 800426e: 4619 mov r1, r3 8004270: 4843 ldr r0, [pc, #268] ; (8004380 ) 8004272: f00a fa47 bl 800e704 GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 |GPIO_PIN_12; 8004276: f641 0358 movw r3, #6232 ; 0x1858 800427a: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 800427c: 2302 movs r3, #2 800427e: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004280: 2300 movs r3, #0 8004282: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004284: 2303 movs r3, #3 8004286: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 8004288: 230e movs r3, #14 800428a: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 800428c: f107 030c add.w r3, r7, #12 8004290: 4619 mov r1, r3 8004292: 483c ldr r0, [pc, #240] ; (8004384 ) 8004294: f00a fa36 bl 800e704 GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1; 8004298: 2303 movs r3, #3 800429a: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 800429c: 2302 movs r3, #2 800429e: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 80042a0: 2300 movs r3, #0 80042a2: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 80042a4: 2303 movs r3, #3 80042a6: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; 80042a8: 2309 movs r3, #9 80042aa: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 80042ac: f107 030c add.w r3, r7, #12 80042b0: 4619 mov r1, r3 80042b2: 4835 ldr r0, [pc, #212] ; (8004388 ) 80042b4: f00a fa26 bl 800e704 GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_8 | GPIO_PIN_9; 80042b8: f44f 6370 mov.w r3, #3840 ; 0xf00 80042bc: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 80042be: 2302 movs r3, #2 80042c0: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 80042c2: 2300 movs r3, #0 80042c4: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 80042c6: 2303 movs r3, #3 80042c8: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 80042ca: 230e movs r3, #14 80042cc: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 80042ce: f107 030c add.w r3, r7, #12 80042d2: 4619 mov r1, r3 80042d4: 482c ldr r0, [pc, #176] ; (8004388 ) 80042d6: f00a fa15 bl 800e704 GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_11; 80042da: f44f 630c mov.w r3, #2240 ; 0x8c0 80042de: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 80042e0: 2302 movs r3, #2 80042e2: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 80042e4: 2300 movs r3, #0 80042e6: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 80042e8: 2303 movs r3, #3 80042ea: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 80042ec: 230e movs r3, #14 80042ee: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 80042f0: f107 030c add.w r3, r7, #12 80042f4: 4619 mov r1, r3 80042f6: 4825 ldr r0, [pc, #148] ; (800438c ) 80042f8: f00a fa04 bl 800e704 GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7; 80042fc: 23c0 movs r3, #192 ; 0xc0 80042fe: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004300: 2302 movs r3, #2 8004302: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004304: 2300 movs r3, #0 8004306: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004308: 2303 movs r3, #3 800430a: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 800430c: 230e movs r3, #14 800430e: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); 8004310: f107 030c add.w r3, r7, #12 8004314: 4619 mov r1, r3 8004316: 481e ldr r0, [pc, #120] ; (8004390 ) 8004318: f00a f9f4 bl 800e704 GPIO_InitStruct.Pin = GPIO_PIN_3; 800431c: 2308 movs r3, #8 800431e: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004320: 2302 movs r3, #2 8004322: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004324: 2300 movs r3, #0 8004326: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 8004328: 2303 movs r3, #3 800432a: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; 800432c: 230e movs r3, #14 800432e: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); 8004330: f107 030c add.w r3, r7, #12 8004334: 4619 mov r1, r3 8004336: 4817 ldr r0, [pc, #92] ; (8004394 ) 8004338: f00a f9e4 bl 800e704 GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_12; 800433c: f44f 53a0 mov.w r3, #5120 ; 0x1400 8004340: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 8004342: 2302 movs r3, #2 8004344: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; 8004346: 2300 movs r3, #0 8004348: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 800434a: 2303 movs r3, #3 800434c: 61bb str r3, [r7, #24] GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; 800434e: 2309 movs r3, #9 8004350: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 8004352: f107 030c add.w r3, r7, #12 8004356: 4619 mov r1, r3 8004358: 480c ldr r0, [pc, #48] ; (800438c ) 800435a: f00a f9d3 bl 800e704 HAL_NVIC_SetPriority(LTDC_IRQn, 6, 0); 800435e: 2200 movs r2, #0 8004360: 2106 movs r1, #6 8004362: 2058 movs r0, #88 ; 0x58 8004364: f009 fcc7 bl 800dcf6 HAL_NVIC_EnableIRQ(LTDC_IRQn); 8004368: 2058 movs r0, #88 ; 0x58 800436a: f009 fce0 bl 800dd2e } } 800436e: bf00 nop 8004370: 3720 adds r7, #32 8004372: 46bd mov sp, r7 8004374: bd80 pop {r7, pc} 8004376: bf00 nop 8004378: 40016800 .word 0x40016800 800437c: 40023800 .word 0x40023800 8004380: 40021400 .word 0x40021400 8004384: 40020000 .word 0x40020000 8004388: 40020400 .word 0x40020400 800438c: 40021800 .word 0x40021800 8004390: 40020800 .word 0x40020800 8004394: 40020c00 .word 0x40020c00 08004398 : HAL_NVIC_DisableIRQ(LTDC_IRQn); } } uint32_t BSP_LCD_GetXSize(void) { 8004398: b480 push {r7} 800439a: af00 add r7, sp, #0 return hLtdcHandler.LayerCfg[ActiveLayer].ImageWidth; 800439c: 4b06 ldr r3, [pc, #24] ; (80043b8 ) 800439e: 681b ldr r3, [r3, #0] 80043a0: 4a06 ldr r2, [pc, #24] ; (80043bc ) 80043a2: 2134 movs r1, #52 ; 0x34 80043a4: fb01 f303 mul.w r3, r1, r3 80043a8: 4413 add r3, r2 80043aa: 3360 adds r3, #96 ; 0x60 80043ac: 681b ldr r3, [r3, #0] } 80043ae: 4618 mov r0, r3 80043b0: 46bd mov sp, r7 80043b2: f85d 7b04 ldr.w r7, [sp], #4 80043b6: 4770 bx lr 80043b8: 20020014 .word 0x20020014 80043bc: 2006b9dc .word 0x2006b9dc 080043c0 : /** * @brief Gets the LCD Y size. * @retval Used LCD Y size */ uint32_t BSP_LCD_GetYSize(void) { 80043c0: b480 push {r7} 80043c2: af00 add r7, sp, #0 return hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight; 80043c4: 4b06 ldr r3, [pc, #24] ; (80043e0 ) 80043c6: 681b ldr r3, [r3, #0] 80043c8: 4a06 ldr r2, [pc, #24] ; (80043e4 ) 80043ca: 2134 movs r1, #52 ; 0x34 80043cc: fb01 f303 mul.w r3, r1, r3 80043d0: 4413 add r3, r2 80043d2: 3364 adds r3, #100 ; 0x64 80043d4: 681b ldr r3, [r3, #0] } 80043d6: 4618 mov r0, r3 80043d8: 46bd mov sp, r7 80043da: f85d 7b04 ldr.w r7, [sp], #4 80043de: 4770 bx lr 80043e0: 20020014 .word 0x20020014 80043e4: 2006b9dc .word 0x2006b9dc 080043e8 : { hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight = imageHeightPixels; } void BSP_LCD_SelectLayer(uint32_t LayerIndex) { 80043e8: b480 push {r7} 80043ea: b083 sub sp, #12 80043ec: af00 add r7, sp, #0 80043ee: 6078 str r0, [r7, #4] ActiveLayer = LayerIndex; 80043f0: 4a04 ldr r2, [pc, #16] ; (8004404 ) 80043f2: 687b ldr r3, [r7, #4] 80043f4: 6013 str r3, [r2, #0] } 80043f6: bf00 nop 80043f8: 370c adds r7, #12 80043fa: 46bd mov sp, r7 80043fc: f85d 7b04 ldr.w r7, [sp], #4 8004400: 4770 bx lr 8004402: bf00 nop 8004404: 20020014 .word 0x20020014 08004408 : * @arg ENABLE * @arg DISABLE * @retval None */ void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State) { 8004408: b480 push {r7} 800440a: b083 sub sp, #12 800440c: af00 add r7, sp, #0 800440e: 6078 str r0, [r7, #4] 8004410: 460b mov r3, r1 8004412: 70fb strb r3, [r7, #3] if(State == ENABLE) 8004414: 78fb ldrb r3, [r7, #3] 8004416: 2b01 cmp r3, #1 8004418: d113 bne.n 8004442 __HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex); 800441a: 4b1a ldr r3, [pc, #104] ; (8004484 ) 800441c: 681b ldr r3, [r3, #0] 800441e: 461a mov r2, r3 8004420: 687b ldr r3, [r7, #4] 8004422: 01db lsls r3, r3, #7 8004424: 4413 add r3, r2 8004426: 3384 adds r3, #132 ; 0x84 8004428: 461a mov r2, r3 800442a: 4b16 ldr r3, [pc, #88] ; (8004484 ) 800442c: 681b ldr r3, [r3, #0] 800442e: 4619 mov r1, r3 8004430: 687b ldr r3, [r7, #4] 8004432: 01db lsls r3, r3, #7 8004434: 440b add r3, r1 8004436: 3384 adds r3, #132 ; 0x84 8004438: 681b ldr r3, [r3, #0] 800443a: f043 0301 orr.w r3, r3, #1 800443e: 6013 str r3, [r2, #0] 8004440: e012 b.n 8004468 else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); 8004442: 4b10 ldr r3, [pc, #64] ; (8004484 ) 8004444: 681b ldr r3, [r3, #0] 8004446: 461a mov r2, r3 8004448: 687b ldr r3, [r7, #4] 800444a: 01db lsls r3, r3, #7 800444c: 4413 add r3, r2 800444e: 3384 adds r3, #132 ; 0x84 8004450: 461a mov r2, r3 8004452: 4b0c ldr r3, [pc, #48] ; (8004484 ) 8004454: 681b ldr r3, [r3, #0] 8004456: 4619 mov r1, r3 8004458: 687b ldr r3, [r7, #4] 800445a: 01db lsls r3, r3, #7 800445c: 440b add r3, r1 800445e: 3384 adds r3, #132 ; 0x84 8004460: 681b ldr r3, [r3, #0] 8004462: f023 0301 bic.w r3, r3, #1 8004466: 6013 str r3, [r2, #0] __HAL_LTDC_RELOAD_CONFIG(&hLtdcHandler); 8004468: 4b06 ldr r3, [pc, #24] ; (8004484 ) 800446a: 681b ldr r3, [r3, #0] 800446c: 4a05 ldr r2, [pc, #20] ; (8004484 ) 800446e: 6812 ldr r2, [r2, #0] 8004470: 6a52 ldr r2, [r2, #36] ; 0x24 8004472: f042 0201 orr.w r2, r2, #1 8004476: 625a str r2, [r3, #36] ; 0x24 } 8004478: bf00 nop 800447a: 370c adds r7, #12 800447c: 46bd mov sp, r7 800447e: f85d 7b04 ldr.w r7, [sp], #4 8004482: 4770 bx lr 8004484: 2006b9dc .word 0x2006b9dc 08004488 : * @arg ENABLE * @arg DISABLE * @retval None */ void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State) { 8004488: b480 push {r7} 800448a: b083 sub sp, #12 800448c: af00 add r7, sp, #0 800448e: 6078 str r0, [r7, #4] 8004490: 460b mov r3, r1 8004492: 70fb strb r3, [r7, #3] if(State == ENABLE) 8004494: 78fb ldrb r3, [r7, #3] 8004496: 2b01 cmp r3, #1 8004498: d113 bne.n 80044c2 __HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex); 800449a: 4b16 ldr r3, [pc, #88] ; (80044f4 ) 800449c: 681b ldr r3, [r3, #0] 800449e: 461a mov r2, r3 80044a0: 687b ldr r3, [r7, #4] 80044a2: 01db lsls r3, r3, #7 80044a4: 4413 add r3, r2 80044a6: 3384 adds r3, #132 ; 0x84 80044a8: 461a mov r2, r3 80044aa: 4b12 ldr r3, [pc, #72] ; (80044f4 ) 80044ac: 681b ldr r3, [r3, #0] 80044ae: 4619 mov r1, r3 80044b0: 687b ldr r3, [r7, #4] 80044b2: 01db lsls r3, r3, #7 80044b4: 440b add r3, r1 80044b6: 3384 adds r3, #132 ; 0x84 80044b8: 681b ldr r3, [r3, #0] 80044ba: f043 0301 orr.w r3, r3, #1 80044be: 6013 str r3, [r2, #0] else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); } 80044c0: e012 b.n 80044e8 else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex); 80044c2: 4b0c ldr r3, [pc, #48] ; (80044f4 ) 80044c4: 681b ldr r3, [r3, #0] 80044c6: 461a mov r2, r3 80044c8: 687b ldr r3, [r7, #4] 80044ca: 01db lsls r3, r3, #7 80044cc: 4413 add r3, r2 80044ce: 3384 adds r3, #132 ; 0x84 80044d0: 461a mov r2, r3 80044d2: 4b08 ldr r3, [pc, #32] ; (80044f4 ) 80044d4: 681b ldr r3, [r3, #0] 80044d6: 4619 mov r1, r3 80044d8: 687b ldr r3, [r7, #4] 80044da: 01db lsls r3, r3, #7 80044dc: 440b add r3, r1 80044de: 3384 adds r3, #132 ; 0x84 80044e0: 681b ldr r3, [r3, #0] 80044e2: f023 0301 bic.w r3, r3, #1 80044e6: 6013 str r3, [r2, #0] } 80044e8: bf00 nop 80044ea: 370c adds r7, #12 80044ec: 46bd mov sp, r7 80044ee: f85d 7b04 ldr.w r7, [sp], #4 80044f2: 4770 bx lr 80044f4: 2006b9dc .word 0x2006b9dc 080044f8 : * @brief Sets the LCD text color. * @param Color: Text color code ARGB(8-8-8-8) * @retval None */ void LCD_SetColors(uint32_t ColorUp, uint32_t ColorDn) { 80044f8: b480 push {r7} 80044fa: b083 sub sp, #12 80044fc: af00 add r7, sp, #0 80044fe: 6078 str r0, [r7, #4] 8004500: 6039 str r1, [r7, #0] DrawProp[ActiveLayer].TextColor = ColorUp; 8004502: 4b0d ldr r3, [pc, #52] ; (8004538 ) 8004504: 681a ldr r2, [r3, #0] 8004506: 490d ldr r1, [pc, #52] ; (800453c ) 8004508: 4613 mov r3, r2 800450a: 005b lsls r3, r3, #1 800450c: 4413 add r3, r2 800450e: 009b lsls r3, r3, #2 8004510: 440b add r3, r1 8004512: 687a ldr r2, [r7, #4] 8004514: 601a str r2, [r3, #0] DrawProp[ActiveLayer].BackColor = ColorDn; 8004516: 4b08 ldr r3, [pc, #32] ; (8004538 ) 8004518: 681a ldr r2, [r3, #0] 800451a: 4908 ldr r1, [pc, #32] ; (800453c ) 800451c: 4613 mov r3, r2 800451e: 005b lsls r3, r3, #1 8004520: 4413 add r3, r2 8004522: 009b lsls r3, r3, #2 8004524: 440b add r3, r1 8004526: 3304 adds r3, #4 8004528: 683a ldr r2, [r7, #0] 800452a: 601a str r2, [r3, #0] } 800452c: bf00 nop 800452e: 370c adds r7, #12 8004530: 46bd mov sp, r7 8004532: f85d 7b04 ldr.w r7, [sp], #4 8004536: 4770 bx lr 8004538: 20020014 .word 0x20020014 800453c: 2006b2b0 .word 0x2006b2b0 08004540 : void BSP_LCD_SetTextColor(uint32_t Color) { 8004540: b480 push {r7} 8004542: b083 sub sp, #12 8004544: af00 add r7, sp, #0 8004546: 6078 str r0, [r7, #4] DrawProp[ActiveLayer].TextColor = Color; 8004548: 4b07 ldr r3, [pc, #28] ; (8004568 ) 800454a: 681a ldr r2, [r3, #0] 800454c: 4907 ldr r1, [pc, #28] ; (800456c ) 800454e: 4613 mov r3, r2 8004550: 005b lsls r3, r3, #1 8004552: 4413 add r3, r2 8004554: 009b lsls r3, r3, #2 8004556: 440b add r3, r1 8004558: 687a ldr r2, [r7, #4] 800455a: 601a str r2, [r3, #0] } 800455c: bf00 nop 800455e: 370c adds r7, #12 8004560: 46bd mov sp, r7 8004562: f85d 7b04 ldr.w r7, [sp], #4 8004566: 4770 bx lr 8004568: 20020014 .word 0x20020014 800456c: 2006b2b0 .word 0x2006b2b0 08004570 : * @brief Sets the LCD text font. * @param fonts: Layer font to be used * @retval None */ void BSP_LCD_SetFont(sFONT *fonts) { 8004570: b480 push {r7} 8004572: b083 sub sp, #12 8004574: af00 add r7, sp, #0 8004576: 6078 str r0, [r7, #4] DrawProp[ActiveLayer].pFont = fonts; 8004578: 4b09 ldr r3, [pc, #36] ; (80045a0 ) 800457a: 681a ldr r2, [r3, #0] 800457c: 4909 ldr r1, [pc, #36] ; (80045a4 ) 800457e: 4613 mov r3, r2 8004580: 005b lsls r3, r3, #1 8004582: 4413 add r3, r2 8004584: 009b lsls r3, r3, #2 8004586: 440b add r3, r1 8004588: 3308 adds r3, #8 800458a: 687a ldr r2, [r7, #4] 800458c: 601a str r2, [r3, #0] CurrentFont = fonts; 800458e: 4a06 ldr r2, [pc, #24] ; (80045a8 ) 8004590: 687b ldr r3, [r7, #4] 8004592: 6013 str r3, [r2, #0] } 8004594: bf00 nop 8004596: 370c adds r7, #12 8004598: 46bd mov sp, r7 800459a: f85d 7b04 ldr.w r7, [sp], #4 800459e: 4770 bx lr 80045a0: 20020014 .word 0x20020014 80045a4: 2006b2b0 .word 0x2006b2b0 80045a8: 2006b9d8 .word 0x2006b9d8 080045ac : * @brief Clears the hole LCD. * @param Color: Color of the background * @retval None */ void BSP_LCD_Clear(uint32_t Color) { 80045ac: b5f0 push {r4, r5, r6, r7, lr} 80045ae: b085 sub sp, #20 80045b0: af02 add r7, sp, #8 80045b2: 6078 str r0, [r7, #4] LL_FillBuffer(ActiveLayer, (uint32_t *)(hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress), BSP_LCD_GetXSize(), BSP_LCD_GetYSize(), 0, Color); 80045b4: 4b0f ldr r3, [pc, #60] ; (80045f4 ) 80045b6: 681c ldr r4, [r3, #0] 80045b8: 4b0e ldr r3, [pc, #56] ; (80045f4 ) 80045ba: 681b ldr r3, [r3, #0] 80045bc: 4a0e ldr r2, [pc, #56] ; (80045f8 ) 80045be: 2134 movs r1, #52 ; 0x34 80045c0: fb01 f303 mul.w r3, r1, r3 80045c4: 4413 add r3, r2 80045c6: 335c adds r3, #92 ; 0x5c 80045c8: 681b ldr r3, [r3, #0] 80045ca: 461d mov r5, r3 80045cc: f7ff fee4 bl 8004398 80045d0: 4606 mov r6, r0 80045d2: f7ff fef5 bl 80043c0 80045d6: 4602 mov r2, r0 80045d8: 687b ldr r3, [r7, #4] 80045da: 9301 str r3, [sp, #4] 80045dc: 2300 movs r3, #0 80045de: 9300 str r3, [sp, #0] 80045e0: 4613 mov r3, r2 80045e2: 4632 mov r2, r6 80045e4: 4629 mov r1, r5 80045e6: 4620 mov r0, r4 80045e8: f000 fd1a bl 8005020 } 80045ec: bf00 nop 80045ee: 370c adds r7, #12 80045f0: 46bd mov sp, r7 80045f2: bdf0 pop {r4, r5, r6, r7, pc} 80045f4: 20020014 .word 0x20020014 80045f8: 2006b9dc .word 0x2006b9dc 080045fc : * @param Ascii: Character ascii code * This parameter must be a number between Min_Data = 0x20 and Max_Data = 0x7E * @retval None */ void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii) { 80045fc: b590 push {r4, r7, lr} 80045fe: b083 sub sp, #12 8004600: af00 add r7, sp, #0 8004602: 4603 mov r3, r0 8004604: 80fb strh r3, [r7, #6] 8004606: 460b mov r3, r1 8004608: 80bb strh r3, [r7, #4] 800460a: 4613 mov r3, r2 800460c: 70fb strb r3, [r7, #3] DrawChar( Xpos, Ypos, &DrawProp[ActiveLayer].pFont->table[(Ascii - ' ') * DrawProp[ActiveLayer].pFont->Height * ((DrawProp[ActiveLayer].pFont->Width + 7) / 8)] ); 800460e: 4b1b ldr r3, [pc, #108] ; (800467c ) 8004610: 681a ldr r2, [r3, #0] 8004612: 491b ldr r1, [pc, #108] ; (8004680 ) 8004614: 4613 mov r3, r2 8004616: 005b lsls r3, r3, #1 8004618: 4413 add r3, r2 800461a: 009b lsls r3, r3, #2 800461c: 440b add r3, r1 800461e: 3308 adds r3, #8 8004620: 681b ldr r3, [r3, #0] 8004622: 6819 ldr r1, [r3, #0] 8004624: 78fb ldrb r3, [r7, #3] 8004626: f1a3 0020 sub.w r0, r3, #32 800462a: 4b14 ldr r3, [pc, #80] ; (800467c ) 800462c: 681a ldr r2, [r3, #0] 800462e: 4c14 ldr r4, [pc, #80] ; (8004680 ) 8004630: 4613 mov r3, r2 8004632: 005b lsls r3, r3, #1 8004634: 4413 add r3, r2 8004636: 009b lsls r3, r3, #2 8004638: 4423 add r3, r4 800463a: 3308 adds r3, #8 800463c: 681b ldr r3, [r3, #0] 800463e: 88db ldrh r3, [r3, #6] 8004640: fb03 f000 mul.w r0, r3, r0 8004644: 4b0d ldr r3, [pc, #52] ; (800467c ) 8004646: 681a ldr r2, [r3, #0] 8004648: 4c0d ldr r4, [pc, #52] ; (8004680 ) 800464a: 4613 mov r3, r2 800464c: 005b lsls r3, r3, #1 800464e: 4413 add r3, r2 8004650: 009b lsls r3, r3, #2 8004652: 4423 add r3, r4 8004654: 3308 adds r3, #8 8004656: 681b ldr r3, [r3, #0] 8004658: 889b ldrh r3, [r3, #4] 800465a: 3307 adds r3, #7 800465c: 2b00 cmp r3, #0 800465e: da00 bge.n 8004662 8004660: 3307 adds r3, #7 8004662: 10db asrs r3, r3, #3 8004664: fb03 f300 mul.w r3, r3, r0 8004668: 18ca adds r2, r1, r3 800466a: 88b9 ldrh r1, [r7, #4] 800466c: 88fb ldrh r3, [r7, #6] 800466e: 4618 mov r0, r3 8004670: f000 fc1e bl 8004eb0 } 8004674: bf00 nop 8004676: 370c adds r7, #12 8004678: 46bd mov sp, r7 800467a: bd90 pop {r4, r7, pc} 800467c: 20020014 .word 0x20020014 8004680: 2006b2b0 .word 0x2006b2b0 08004684 : * @arg RIGHT_MODE * @arg LEFT_MODE * @retval None */ void BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, char *Text, Text_AlignModeTypdef Mode) { 8004684: b5b0 push {r4, r5, r7, lr} 8004686: b088 sub sp, #32 8004688: af00 add r7, sp, #0 800468a: 60ba str r2, [r7, #8] 800468c: 461a mov r2, r3 800468e: 4603 mov r3, r0 8004690: 81fb strh r3, [r7, #14] 8004692: 460b mov r3, r1 8004694: 81bb strh r3, [r7, #12] 8004696: 4613 mov r3, r2 8004698: 71fb strb r3, [r7, #7] uint16_t ref_column = 1, i = 0, ll = 0; 800469a: 2301 movs r3, #1 800469c: 83fb strh r3, [r7, #30] 800469e: 2300 movs r3, #0 80046a0: 83bb strh r3, [r7, #28] 80046a2: 2300 movs r3, #0 80046a4: 827b strh r3, [r7, #18] uint32_t size = 0; 80046a6: 2300 movs r3, #0 80046a8: 61bb str r3, [r7, #24] uint8_t *ptr; ptr = (uint8_t *) Text; 80046aa: 68bb ldr r3, [r7, #8] 80046ac: 617b str r3, [r7, #20] /* Get the text size */ while (*ptr++) size++ ; 80046ae: e002 b.n 80046b6 80046b0: 69bb ldr r3, [r7, #24] 80046b2: 3301 adds r3, #1 80046b4: 61bb str r3, [r7, #24] 80046b6: 697b ldr r3, [r7, #20] 80046b8: 1c5a adds r2, r3, #1 80046ba: 617a str r2, [r7, #20] 80046bc: 781b ldrb r3, [r3, #0] 80046be: 2b00 cmp r3, #0 80046c0: d1f6 bne.n 80046b0 /* Characters number per line */ // xsize = (BSP_LCD_GetXSize() / DrawProp[ActiveLayer].pFont->Width); switch (Mode) 80046c2: 79fb ldrb r3, [r7, #7] 80046c4: 2b02 cmp r3, #2 80046c6: d01d beq.n 8004704 80046c8: 2b03 cmp r3, #3 80046ca: d018 beq.n 80046fe 80046cc: 2b01 cmp r3, #1 80046ce: d12e bne.n 800472e { case CENTER_MODE: { ll = DrawProp[ActiveLayer].pFont->Width * size; 80046d0: 4b44 ldr r3, [pc, #272] ; (80047e4 ) 80046d2: 681a ldr r2, [r3, #0] 80046d4: 4944 ldr r1, [pc, #272] ; (80047e8 ) 80046d6: 4613 mov r3, r2 80046d8: 005b lsls r3, r3, #1 80046da: 4413 add r3, r2 80046dc: 009b lsls r3, r3, #2 80046de: 440b add r3, r1 80046e0: 3308 adds r3, #8 80046e2: 681b ldr r3, [r3, #0] 80046e4: 889a ldrh r2, [r3, #4] 80046e6: 69bb ldr r3, [r7, #24] 80046e8: b29b uxth r3, r3 80046ea: fb12 f303 smulbb r3, r2, r3 80046ee: 827b strh r3, [r7, #18] ref_column = Xpos - (ll >> 1); 80046f0: 8a7b ldrh r3, [r7, #18] 80046f2: 085b lsrs r3, r3, #1 80046f4: b29b uxth r3, r3 80046f6: 89fa ldrh r2, [r7, #14] 80046f8: 1ad3 subs r3, r2, r3 80046fa: 83fb strh r3, [r7, #30] //if((ref_column + ll > 319) || (ref_column > 319)) // ref_column = Xpos + ((xsize - size)* DrawProp[ActiveLayer].pFont->Width) / 2; break; 80046fc: e01a b.n 8004734 } case LEFT_MODE: { ref_column = Xpos; 80046fe: 89fb ldrh r3, [r7, #14] 8004700: 83fb strh r3, [r7, #30] break; 8004702: e017 b.n 8004734 } case RIGHT_MODE: { ll = DrawProp[ActiveLayer].pFont->Width * size; 8004704: 4b37 ldr r3, [pc, #220] ; (80047e4 ) 8004706: 681a ldr r2, [r3, #0] 8004708: 4937 ldr r1, [pc, #220] ; (80047e8 ) 800470a: 4613 mov r3, r2 800470c: 005b lsls r3, r3, #1 800470e: 4413 add r3, r2 8004710: 009b lsls r3, r3, #2 8004712: 440b add r3, r1 8004714: 3308 adds r3, #8 8004716: 681b ldr r3, [r3, #0] 8004718: 889a ldrh r2, [r3, #4] 800471a: 69bb ldr r3, [r7, #24] 800471c: b29b uxth r3, r3 800471e: fb12 f303 smulbb r3, r2, r3 8004722: 827b strh r3, [r7, #18] ref_column = Xpos - ll; 8004724: 89fa ldrh r2, [r7, #14] 8004726: 8a7b ldrh r3, [r7, #18] 8004728: 1ad3 subs r3, r2, r3 800472a: 83fb strh r3, [r7, #30] // ref_column = - Xpos + ((xsize - size)*DrawProp[ActiveLayer].pFont->Width); break; 800472c: e002 b.n 8004734 } default: { ref_column = Xpos; 800472e: 89fb ldrh r3, [r7, #14] 8004730: 83fb strh r3, [r7, #30] break; 8004732: bf00 nop } } /* Check that the Start column is located in the screen */ if ((ref_column < 1) || (ref_column >= 0x8000)) 8004734: 8bfb ldrh r3, [r7, #30] 8004736: 2b00 cmp r3, #0 8004738: d003 beq.n 8004742 800473a: f9b7 301e ldrsh.w r3, [r7, #30] 800473e: 2b00 cmp r3, #0 8004740: da1d bge.n 800477e { ref_column = 1; 8004742: 2301 movs r3, #1 8004744: 83fb strh r3, [r7, #30] } /* Send the string character by character on LCD */ while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width)) 8004746: e01a b.n 800477e { /* Display one character on LCD */ BSP_LCD_DisplayChar(ref_column, Ypos, *Text); 8004748: 68bb ldr r3, [r7, #8] 800474a: 781a ldrb r2, [r3, #0] 800474c: 89b9 ldrh r1, [r7, #12] 800474e: 8bfb ldrh r3, [r7, #30] 8004750: 4618 mov r0, r3 8004752: f7ff ff53 bl 80045fc /* Decrement the column position by 16 */ ref_column += DrawProp[ActiveLayer].pFont->Width; 8004756: 4b23 ldr r3, [pc, #140] ; (80047e4 ) 8004758: 681a ldr r2, [r3, #0] 800475a: 4923 ldr r1, [pc, #140] ; (80047e8 ) 800475c: 4613 mov r3, r2 800475e: 005b lsls r3, r3, #1 8004760: 4413 add r3, r2 8004762: 009b lsls r3, r3, #2 8004764: 440b add r3, r1 8004766: 3308 adds r3, #8 8004768: 681b ldr r3, [r3, #0] 800476a: 889a ldrh r2, [r3, #4] 800476c: 8bfb ldrh r3, [r7, #30] 800476e: 4413 add r3, r2 8004770: 83fb strh r3, [r7, #30] /* Point on the next character */ Text++; 8004772: 68bb ldr r3, [r7, #8] 8004774: 3301 adds r3, #1 8004776: 60bb str r3, [r7, #8] i++; 8004778: 8bbb ldrh r3, [r7, #28] 800477a: 3301 adds r3, #1 800477c: 83bb strh r3, [r7, #28] while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width)) 800477e: 68bb ldr r3, [r7, #8] 8004780: 781b ldrb r3, [r3, #0] 8004782: 2b00 cmp r3, #0 8004784: bf14 ite ne 8004786: 2301 movne r3, #1 8004788: 2300 moveq r3, #0 800478a: b2dc uxtb r4, r3 800478c: f7ff fe04 bl 8004398 8004790: 4605 mov r5, r0 8004792: 8bb9 ldrh r1, [r7, #28] 8004794: 4b13 ldr r3, [pc, #76] ; (80047e4 ) 8004796: 681a ldr r2, [r3, #0] 8004798: 4813 ldr r0, [pc, #76] ; (80047e8 ) 800479a: 4613 mov r3, r2 800479c: 005b lsls r3, r3, #1 800479e: 4413 add r3, r2 80047a0: 009b lsls r3, r3, #2 80047a2: 4403 add r3, r0 80047a4: 3308 adds r3, #8 80047a6: 681b ldr r3, [r3, #0] 80047a8: 889b ldrh r3, [r3, #4] 80047aa: fb03 f301 mul.w r3, r3, r1 80047ae: 1aeb subs r3, r5, r3 80047b0: b299 uxth r1, r3 80047b2: 4b0c ldr r3, [pc, #48] ; (80047e4 ) 80047b4: 681a ldr r2, [r3, #0] 80047b6: 480c ldr r0, [pc, #48] ; (80047e8 ) 80047b8: 4613 mov r3, r2 80047ba: 005b lsls r3, r3, #1 80047bc: 4413 add r3, r2 80047be: 009b lsls r3, r3, #2 80047c0: 4403 add r3, r0 80047c2: 3308 adds r3, #8 80047c4: 681b ldr r3, [r3, #0] 80047c6: 889b ldrh r3, [r3, #4] 80047c8: 4299 cmp r1, r3 80047ca: bf2c ite cs 80047cc: 2301 movcs r3, #1 80047ce: 2300 movcc r3, #0 80047d0: b2db uxtb r3, r3 80047d2: 4023 ands r3, r4 80047d4: b2db uxtb r3, r3 80047d6: 2b00 cmp r3, #0 80047d8: d1b6 bne.n 8004748 } } 80047da: bf00 nop 80047dc: 3720 adds r7, #32 80047de: 46bd mov sp, r7 80047e0: bdb0 pop {r4, r5, r7, pc} 80047e2: bf00 nop 80047e4: 20020014 .word 0x20020014 80047e8: 2006b2b0 .word 0x2006b2b0 080047ec : * @param Ypos: Y position * @param Length: Line length * @retval None */ void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length) { 80047ec: b5b0 push {r4, r5, r7, lr} 80047ee: b086 sub sp, #24 80047f0: af02 add r7, sp, #8 80047f2: 4603 mov r3, r0 80047f4: 80fb strh r3, [r7, #6] 80047f6: 460b mov r3, r1 80047f8: 80bb strh r3, [r7, #4] 80047fa: 4613 mov r3, r2 80047fc: 807b strh r3, [r7, #2] uint32_t Xaddress = 0; 80047fe: 2300 movs r3, #0 8004800: 60fb str r3, [r7, #12] /* Get the line address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8004802: 4b26 ldr r3, [pc, #152] ; (800489c ) 8004804: 681b ldr r3, [r3, #0] 8004806: 4a26 ldr r2, [pc, #152] ; (80048a0 ) 8004808: 2134 movs r1, #52 ; 0x34 800480a: fb01 f303 mul.w r3, r1, r3 800480e: 4413 add r3, r2 8004810: 3348 adds r3, #72 ; 0x48 8004812: 681b ldr r3, [r3, #0] 8004814: 2b02 cmp r3, #2 8004816: d114 bne.n 8004842 { /* RGB565 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 8004818: 4b20 ldr r3, [pc, #128] ; (800489c ) 800481a: 681b ldr r3, [r3, #0] 800481c: 4a20 ldr r2, [pc, #128] ; (80048a0 ) 800481e: 2134 movs r1, #52 ; 0x34 8004820: fb01 f303 mul.w r3, r1, r3 8004824: 4413 add r3, r2 8004826: 335c adds r3, #92 ; 0x5c 8004828: 681c ldr r4, [r3, #0] 800482a: f7ff fdb5 bl 8004398 800482e: 4602 mov r2, r0 8004830: 88bb ldrh r3, [r7, #4] 8004832: fb03 f202 mul.w r2, r3, r2 8004836: 88fb ldrh r3, [r7, #6] 8004838: 4413 add r3, r2 800483a: 005b lsls r3, r3, #1 800483c: 4423 add r3, r4 800483e: 60fb str r3, [r7, #12] 8004840: e013 b.n 800486a } else { /* ARGB8888 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 8004842: 4b16 ldr r3, [pc, #88] ; (800489c ) 8004844: 681b ldr r3, [r3, #0] 8004846: 4a16 ldr r2, [pc, #88] ; (80048a0 ) 8004848: 2134 movs r1, #52 ; 0x34 800484a: fb01 f303 mul.w r3, r1, r3 800484e: 4413 add r3, r2 8004850: 335c adds r3, #92 ; 0x5c 8004852: 681c ldr r4, [r3, #0] 8004854: f7ff fda0 bl 8004398 8004858: 4602 mov r2, r0 800485a: 88bb ldrh r3, [r7, #4] 800485c: fb03 f202 mul.w r2, r3, r2 8004860: 88fb ldrh r3, [r7, #6] 8004862: 4413 add r3, r2 8004864: 009b lsls r3, r3, #2 8004866: 4423 add r3, r4 8004868: 60fb str r3, [r7, #12] } /* Write line */ LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, Length, 1, 0, DrawProp[ActiveLayer].TextColor); 800486a: 4b0c ldr r3, [pc, #48] ; (800489c ) 800486c: 6818 ldr r0, [r3, #0] 800486e: 68fc ldr r4, [r7, #12] 8004870: 887d ldrh r5, [r7, #2] 8004872: 4b0a ldr r3, [pc, #40] ; (800489c ) 8004874: 681a ldr r2, [r3, #0] 8004876: 490b ldr r1, [pc, #44] ; (80048a4 ) 8004878: 4613 mov r3, r2 800487a: 005b lsls r3, r3, #1 800487c: 4413 add r3, r2 800487e: 009b lsls r3, r3, #2 8004880: 440b add r3, r1 8004882: 681b ldr r3, [r3, #0] 8004884: 9301 str r3, [sp, #4] 8004886: 2300 movs r3, #0 8004888: 9300 str r3, [sp, #0] 800488a: 2301 movs r3, #1 800488c: 462a mov r2, r5 800488e: 4621 mov r1, r4 8004890: f000 fbc6 bl 8005020 } 8004894: bf00 nop 8004896: 3710 adds r7, #16 8004898: 46bd mov sp, r7 800489a: bdb0 pop {r4, r5, r7, pc} 800489c: 20020014 .word 0x20020014 80048a0: 2006b9dc .word 0x2006b9dc 80048a4: 2006b2b0 .word 0x2006b2b0 080048a8 : * @param Ypos: Y position * @param Length: Line length * @retval None */ void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length) { 80048a8: b5f0 push {r4, r5, r6, r7, lr} 80048aa: b087 sub sp, #28 80048ac: af02 add r7, sp, #8 80048ae: 4603 mov r3, r0 80048b0: 80fb strh r3, [r7, #6] 80048b2: 460b mov r3, r1 80048b4: 80bb strh r3, [r7, #4] 80048b6: 4613 mov r3, r2 80048b8: 807b strh r3, [r7, #2] uint32_t Xaddress = 0; 80048ba: 2300 movs r3, #0 80048bc: 60fb str r3, [r7, #12] /* Get the line address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 80048be: 4b28 ldr r3, [pc, #160] ; (8004960 ) 80048c0: 681b ldr r3, [r3, #0] 80048c2: 4a28 ldr r2, [pc, #160] ; (8004964 ) 80048c4: 2134 movs r1, #52 ; 0x34 80048c6: fb01 f303 mul.w r3, r1, r3 80048ca: 4413 add r3, r2 80048cc: 3348 adds r3, #72 ; 0x48 80048ce: 681b ldr r3, [r3, #0] 80048d0: 2b02 cmp r3, #2 80048d2: d114 bne.n 80048fe { /* RGB565 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 80048d4: 4b22 ldr r3, [pc, #136] ; (8004960 ) 80048d6: 681b ldr r3, [r3, #0] 80048d8: 4a22 ldr r2, [pc, #136] ; (8004964 ) 80048da: 2134 movs r1, #52 ; 0x34 80048dc: fb01 f303 mul.w r3, r1, r3 80048e0: 4413 add r3, r2 80048e2: 335c adds r3, #92 ; 0x5c 80048e4: 681c ldr r4, [r3, #0] 80048e6: f7ff fd57 bl 8004398 80048ea: 4602 mov r2, r0 80048ec: 88bb ldrh r3, [r7, #4] 80048ee: fb03 f202 mul.w r2, r3, r2 80048f2: 88fb ldrh r3, [r7, #6] 80048f4: 4413 add r3, r2 80048f6: 005b lsls r3, r3, #1 80048f8: 4423 add r3, r4 80048fa: 60fb str r3, [r7, #12] 80048fc: e013 b.n 8004926 } else { /* ARGB8888 format */ Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 80048fe: 4b18 ldr r3, [pc, #96] ; (8004960 ) 8004900: 681b ldr r3, [r3, #0] 8004902: 4a18 ldr r2, [pc, #96] ; (8004964 ) 8004904: 2134 movs r1, #52 ; 0x34 8004906: fb01 f303 mul.w r3, r1, r3 800490a: 4413 add r3, r2 800490c: 335c adds r3, #92 ; 0x5c 800490e: 681c ldr r4, [r3, #0] 8004910: f7ff fd42 bl 8004398 8004914: 4602 mov r2, r0 8004916: 88bb ldrh r3, [r7, #4] 8004918: fb03 f202 mul.w r2, r3, r2 800491c: 88fb ldrh r3, [r7, #6] 800491e: 4413 add r3, r2 8004920: 009b lsls r3, r3, #2 8004922: 4423 add r3, r4 8004924: 60fb str r3, [r7, #12] } /* Write line */ LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, 1, Length, (BSP_LCD_GetXSize() - 1), DrawProp[ActiveLayer].TextColor); 8004926: 4b0e ldr r3, [pc, #56] ; (8004960 ) 8004928: 681c ldr r4, [r3, #0] 800492a: 68fd ldr r5, [r7, #12] 800492c: 887e ldrh r6, [r7, #2] 800492e: f7ff fd33 bl 8004398 8004932: 4603 mov r3, r0 8004934: 1e59 subs r1, r3, #1 8004936: 4b0a ldr r3, [pc, #40] ; (8004960 ) 8004938: 681a ldr r2, [r3, #0] 800493a: 480b ldr r0, [pc, #44] ; (8004968 ) 800493c: 4613 mov r3, r2 800493e: 005b lsls r3, r3, #1 8004940: 4413 add r3, r2 8004942: 009b lsls r3, r3, #2 8004944: 4403 add r3, r0 8004946: 681b ldr r3, [r3, #0] 8004948: 9301 str r3, [sp, #4] 800494a: 9100 str r1, [sp, #0] 800494c: 4633 mov r3, r6 800494e: 2201 movs r2, #1 8004950: 4629 mov r1, r5 8004952: 4620 mov r0, r4 8004954: f000 fb64 bl 8005020 } 8004958: bf00 nop 800495a: 3714 adds r7, #20 800495c: 46bd mov sp, r7 800495e: bdf0 pop {r4, r5, r6, r7, pc} 8004960: 20020014 .word 0x20020014 8004964: 2006b9dc .word 0x2006b9dc 8004968: 2006b2b0 .word 0x2006b2b0 0800496c : * @param Width: Rectangle width * @param Height: Rectangle height * @retval None */ void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height) { 800496c: b590 push {r4, r7, lr} 800496e: b083 sub sp, #12 8004970: af00 add r7, sp, #0 8004972: 4604 mov r4, r0 8004974: 4608 mov r0, r1 8004976: 4611 mov r1, r2 8004978: 461a mov r2, r3 800497a: 4623 mov r3, r4 800497c: 80fb strh r3, [r7, #6] 800497e: 4603 mov r3, r0 8004980: 80bb strh r3, [r7, #4] 8004982: 460b mov r3, r1 8004984: 807b strh r3, [r7, #2] 8004986: 4613 mov r3, r2 8004988: 803b strh r3, [r7, #0] BSP_LCD_DrawHLine(Xpos, Ypos, Width); 800498a: 887a ldrh r2, [r7, #2] 800498c: 88b9 ldrh r1, [r7, #4] 800498e: 88fb ldrh r3, [r7, #6] 8004990: 4618 mov r0, r3 8004992: f7ff ff2b bl 80047ec BSP_LCD_DrawVLine(Xpos, Ypos, Height); 8004996: 883a ldrh r2, [r7, #0] 8004998: 88b9 ldrh r1, [r7, #4] 800499a: 88fb ldrh r3, [r7, #6] 800499c: 4618 mov r0, r3 800499e: f7ff ff83 bl 80048a8 BSP_LCD_DrawHLine(Xpos, (Ypos + Height), Width); 80049a2: 88ba ldrh r2, [r7, #4] 80049a4: 883b ldrh r3, [r7, #0] 80049a6: 4413 add r3, r2 80049a8: b299 uxth r1, r3 80049aa: 887a ldrh r2, [r7, #2] 80049ac: 88fb ldrh r3, [r7, #6] 80049ae: 4618 mov r0, r3 80049b0: f7ff ff1c bl 80047ec BSP_LCD_DrawVLine((Xpos + Width), Ypos, Height + 1); 80049b4: 88fa ldrh r2, [r7, #6] 80049b6: 887b ldrh r3, [r7, #2] 80049b8: 4413 add r3, r2 80049ba: b298 uxth r0, r3 80049bc: 883b ldrh r3, [r7, #0] 80049be: 3301 adds r3, #1 80049c0: b29a uxth r2, r3 80049c2: 88bb ldrh r3, [r7, #4] 80049c4: 4619 mov r1, r3 80049c6: f7ff ff6f bl 80048a8 } 80049ca: bf00 nop 80049cc: 370c adds r7, #12 80049ce: 46bd mov sp, r7 80049d0: bd90 pop {r4, r7, pc} ... 080049d4 : * @param Ypos: Y position * @param Radius: Circle radius * @retval None */ void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius) { 80049d4: b590 push {r4, r7, lr} 80049d6: b087 sub sp, #28 80049d8: af00 add r7, sp, #0 80049da: 4603 mov r3, r0 80049dc: 80fb strh r3, [r7, #6] 80049de: 460b mov r3, r1 80049e0: 80bb strh r3, [r7, #4] 80049e2: 4613 mov r3, r2 80049e4: 807b strh r3, [r7, #2] int32_t decision; /* Decision Variable */ uint32_t current_x; /* Current X Value */ uint32_t current_y; /* Current Y Value */ decision = 3 - (Radius << 1); 80049e6: 887b ldrh r3, [r7, #2] 80049e8: 005b lsls r3, r3, #1 80049ea: f1c3 0303 rsb r3, r3, #3 80049ee: 617b str r3, [r7, #20] current_x = 0; 80049f0: 2300 movs r3, #0 80049f2: 613b str r3, [r7, #16] current_y = Radius; 80049f4: 887b ldrh r3, [r7, #2] 80049f6: 60fb str r3, [r7, #12] while (current_x <= current_y) 80049f8: e0cf b.n 8004b9a { BSP_LCD_DrawPixel((Xpos + current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor); 80049fa: 693b ldr r3, [r7, #16] 80049fc: b29a uxth r2, r3 80049fe: 88fb ldrh r3, [r7, #6] 8004a00: 4413 add r3, r2 8004a02: b298 uxth r0, r3 8004a04: 68fb ldr r3, [r7, #12] 8004a06: b29b uxth r3, r3 8004a08: 88ba ldrh r2, [r7, #4] 8004a0a: 1ad3 subs r3, r2, r3 8004a0c: b29c uxth r4, r3 8004a0e: 4b67 ldr r3, [pc, #412] ; (8004bac ) 8004a10: 681a ldr r2, [r3, #0] 8004a12: 4967 ldr r1, [pc, #412] ; (8004bb0 ) 8004a14: 4613 mov r3, r2 8004a16: 005b lsls r3, r3, #1 8004a18: 4413 add r3, r2 8004a1a: 009b lsls r3, r3, #2 8004a1c: 440b add r3, r1 8004a1e: 681b ldr r3, [r3, #0] 8004a20: 461a mov r2, r3 8004a22: 4621 mov r1, r4 8004a24: f000 f8c6 bl 8004bb4 BSP_LCD_DrawPixel((Xpos - current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor); 8004a28: 693b ldr r3, [r7, #16] 8004a2a: b29b uxth r3, r3 8004a2c: 88fa ldrh r2, [r7, #6] 8004a2e: 1ad3 subs r3, r2, r3 8004a30: b298 uxth r0, r3 8004a32: 68fb ldr r3, [r7, #12] 8004a34: b29b uxth r3, r3 8004a36: 88ba ldrh r2, [r7, #4] 8004a38: 1ad3 subs r3, r2, r3 8004a3a: b29c uxth r4, r3 8004a3c: 4b5b ldr r3, [pc, #364] ; (8004bac ) 8004a3e: 681a ldr r2, [r3, #0] 8004a40: 495b ldr r1, [pc, #364] ; (8004bb0 ) 8004a42: 4613 mov r3, r2 8004a44: 005b lsls r3, r3, #1 8004a46: 4413 add r3, r2 8004a48: 009b lsls r3, r3, #2 8004a4a: 440b add r3, r1 8004a4c: 681b ldr r3, [r3, #0] 8004a4e: 461a mov r2, r3 8004a50: 4621 mov r1, r4 8004a52: f000 f8af bl 8004bb4 BSP_LCD_DrawPixel((Xpos + current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor); 8004a56: 68fb ldr r3, [r7, #12] 8004a58: b29a uxth r2, r3 8004a5a: 88fb ldrh r3, [r7, #6] 8004a5c: 4413 add r3, r2 8004a5e: b298 uxth r0, r3 8004a60: 693b ldr r3, [r7, #16] 8004a62: b29b uxth r3, r3 8004a64: 88ba ldrh r2, [r7, #4] 8004a66: 1ad3 subs r3, r2, r3 8004a68: b29c uxth r4, r3 8004a6a: 4b50 ldr r3, [pc, #320] ; (8004bac ) 8004a6c: 681a ldr r2, [r3, #0] 8004a6e: 4950 ldr r1, [pc, #320] ; (8004bb0 ) 8004a70: 4613 mov r3, r2 8004a72: 005b lsls r3, r3, #1 8004a74: 4413 add r3, r2 8004a76: 009b lsls r3, r3, #2 8004a78: 440b add r3, r1 8004a7a: 681b ldr r3, [r3, #0] 8004a7c: 461a mov r2, r3 8004a7e: 4621 mov r1, r4 8004a80: f000 f898 bl 8004bb4 BSP_LCD_DrawPixel((Xpos - current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor); 8004a84: 68fb ldr r3, [r7, #12] 8004a86: b29b uxth r3, r3 8004a88: 88fa ldrh r2, [r7, #6] 8004a8a: 1ad3 subs r3, r2, r3 8004a8c: b298 uxth r0, r3 8004a8e: 693b ldr r3, [r7, #16] 8004a90: b29b uxth r3, r3 8004a92: 88ba ldrh r2, [r7, #4] 8004a94: 1ad3 subs r3, r2, r3 8004a96: b29c uxth r4, r3 8004a98: 4b44 ldr r3, [pc, #272] ; (8004bac ) 8004a9a: 681a ldr r2, [r3, #0] 8004a9c: 4944 ldr r1, [pc, #272] ; (8004bb0 ) 8004a9e: 4613 mov r3, r2 8004aa0: 005b lsls r3, r3, #1 8004aa2: 4413 add r3, r2 8004aa4: 009b lsls r3, r3, #2 8004aa6: 440b add r3, r1 8004aa8: 681b ldr r3, [r3, #0] 8004aaa: 461a mov r2, r3 8004aac: 4621 mov r1, r4 8004aae: f000 f881 bl 8004bb4 BSP_LCD_DrawPixel((Xpos + current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor); 8004ab2: 693b ldr r3, [r7, #16] 8004ab4: b29a uxth r2, r3 8004ab6: 88fb ldrh r3, [r7, #6] 8004ab8: 4413 add r3, r2 8004aba: b298 uxth r0, r3 8004abc: 68fb ldr r3, [r7, #12] 8004abe: b29a uxth r2, r3 8004ac0: 88bb ldrh r3, [r7, #4] 8004ac2: 4413 add r3, r2 8004ac4: b29c uxth r4, r3 8004ac6: 4b39 ldr r3, [pc, #228] ; (8004bac ) 8004ac8: 681a ldr r2, [r3, #0] 8004aca: 4939 ldr r1, [pc, #228] ; (8004bb0 ) 8004acc: 4613 mov r3, r2 8004ace: 005b lsls r3, r3, #1 8004ad0: 4413 add r3, r2 8004ad2: 009b lsls r3, r3, #2 8004ad4: 440b add r3, r1 8004ad6: 681b ldr r3, [r3, #0] 8004ad8: 461a mov r2, r3 8004ada: 4621 mov r1, r4 8004adc: f000 f86a bl 8004bb4 BSP_LCD_DrawPixel((Xpos - current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor); 8004ae0: 693b ldr r3, [r7, #16] 8004ae2: b29b uxth r3, r3 8004ae4: 88fa ldrh r2, [r7, #6] 8004ae6: 1ad3 subs r3, r2, r3 8004ae8: b298 uxth r0, r3 8004aea: 68fb ldr r3, [r7, #12] 8004aec: b29a uxth r2, r3 8004aee: 88bb ldrh r3, [r7, #4] 8004af0: 4413 add r3, r2 8004af2: b29c uxth r4, r3 8004af4: 4b2d ldr r3, [pc, #180] ; (8004bac ) 8004af6: 681a ldr r2, [r3, #0] 8004af8: 492d ldr r1, [pc, #180] ; (8004bb0 ) 8004afa: 4613 mov r3, r2 8004afc: 005b lsls r3, r3, #1 8004afe: 4413 add r3, r2 8004b00: 009b lsls r3, r3, #2 8004b02: 440b add r3, r1 8004b04: 681b ldr r3, [r3, #0] 8004b06: 461a mov r2, r3 8004b08: 4621 mov r1, r4 8004b0a: f000 f853 bl 8004bb4 BSP_LCD_DrawPixel((Xpos + current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor); 8004b0e: 68fb ldr r3, [r7, #12] 8004b10: b29a uxth r2, r3 8004b12: 88fb ldrh r3, [r7, #6] 8004b14: 4413 add r3, r2 8004b16: b298 uxth r0, r3 8004b18: 693b ldr r3, [r7, #16] 8004b1a: b29a uxth r2, r3 8004b1c: 88bb ldrh r3, [r7, #4] 8004b1e: 4413 add r3, r2 8004b20: b29c uxth r4, r3 8004b22: 4b22 ldr r3, [pc, #136] ; (8004bac ) 8004b24: 681a ldr r2, [r3, #0] 8004b26: 4922 ldr r1, [pc, #136] ; (8004bb0 ) 8004b28: 4613 mov r3, r2 8004b2a: 005b lsls r3, r3, #1 8004b2c: 4413 add r3, r2 8004b2e: 009b lsls r3, r3, #2 8004b30: 440b add r3, r1 8004b32: 681b ldr r3, [r3, #0] 8004b34: 461a mov r2, r3 8004b36: 4621 mov r1, r4 8004b38: f000 f83c bl 8004bb4 BSP_LCD_DrawPixel((Xpos - current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor); 8004b3c: 68fb ldr r3, [r7, #12] 8004b3e: b29b uxth r3, r3 8004b40: 88fa ldrh r2, [r7, #6] 8004b42: 1ad3 subs r3, r2, r3 8004b44: b298 uxth r0, r3 8004b46: 693b ldr r3, [r7, #16] 8004b48: b29a uxth r2, r3 8004b4a: 88bb ldrh r3, [r7, #4] 8004b4c: 4413 add r3, r2 8004b4e: b29c uxth r4, r3 8004b50: 4b16 ldr r3, [pc, #88] ; (8004bac ) 8004b52: 681a ldr r2, [r3, #0] 8004b54: 4916 ldr r1, [pc, #88] ; (8004bb0 ) 8004b56: 4613 mov r3, r2 8004b58: 005b lsls r3, r3, #1 8004b5a: 4413 add r3, r2 8004b5c: 009b lsls r3, r3, #2 8004b5e: 440b add r3, r1 8004b60: 681b ldr r3, [r3, #0] 8004b62: 461a mov r2, r3 8004b64: 4621 mov r1, r4 8004b66: f000 f825 bl 8004bb4 if (decision < 0) 8004b6a: 697b ldr r3, [r7, #20] 8004b6c: 2b00 cmp r3, #0 8004b6e: da06 bge.n 8004b7e { decision += (current_x << 2) + 6; 8004b70: 693b ldr r3, [r7, #16] 8004b72: 009a lsls r2, r3, #2 8004b74: 697b ldr r3, [r7, #20] 8004b76: 4413 add r3, r2 8004b78: 3306 adds r3, #6 8004b7a: 617b str r3, [r7, #20] 8004b7c: e00a b.n 8004b94 } else { decision += ((current_x - current_y) << 2) + 10; 8004b7e: 693a ldr r2, [r7, #16] 8004b80: 68fb ldr r3, [r7, #12] 8004b82: 1ad3 subs r3, r2, r3 8004b84: 009a lsls r2, r3, #2 8004b86: 697b ldr r3, [r7, #20] 8004b88: 4413 add r3, r2 8004b8a: 330a adds r3, #10 8004b8c: 617b str r3, [r7, #20] current_y--; 8004b8e: 68fb ldr r3, [r7, #12] 8004b90: 3b01 subs r3, #1 8004b92: 60fb str r3, [r7, #12] } current_x++; 8004b94: 693b ldr r3, [r7, #16] 8004b96: 3301 adds r3, #1 8004b98: 613b str r3, [r7, #16] while (current_x <= current_y) 8004b9a: 693a ldr r2, [r7, #16] 8004b9c: 68fb ldr r3, [r7, #12] 8004b9e: 429a cmp r2, r3 8004ba0: f67f af2b bls.w 80049fa } } 8004ba4: bf00 nop 8004ba6: 371c adds r7, #28 8004ba8: 46bd mov sp, r7 8004baa: bd90 pop {r4, r7, pc} 8004bac: 20020014 .word 0x20020014 8004bb0: 2006b2b0 .word 0x2006b2b0 08004bb4 : * @param Ypos: Y position * @param RGB_Code: Pixel color in ARGB mode (8-8-8-8) * @retval None */ void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code) { 8004bb4: b5b0 push {r4, r5, r7, lr} 8004bb6: b082 sub sp, #8 8004bb8: af00 add r7, sp, #0 8004bba: 4603 mov r3, r0 8004bbc: 603a str r2, [r7, #0] 8004bbe: 80fb strh r3, [r7, #6] 8004bc0: 460b mov r3, r1 8004bc2: 80bb strh r3, [r7, #4] /* Write data value to all SDRAM memory */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8004bc4: 4b2a ldr r3, [pc, #168] ; (8004c70 ) 8004bc6: 681b ldr r3, [r3, #0] 8004bc8: 4a2a ldr r2, [pc, #168] ; (8004c74 ) 8004bca: 2134 movs r1, #52 ; 0x34 8004bcc: fb01 f303 mul.w r3, r1, r3 8004bd0: 4413 add r3, r2 8004bd2: 3348 adds r3, #72 ; 0x48 8004bd4: 681b ldr r3, [r3, #0] 8004bd6: 2b02 cmp r3, #2 8004bd8: d12f bne.n 8004c3a { /* RGB565 format */ *(__IO uint16_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (2*(Ypos*BSP_LCD_GetXSize() + Xpos))) = COLOR24TO16(RGB_Code); 8004bda: 4b25 ldr r3, [pc, #148] ; (8004c70 ) 8004bdc: 681b ldr r3, [r3, #0] 8004bde: 4a25 ldr r2, [pc, #148] ; (8004c74 ) 8004be0: 2134 movs r1, #52 ; 0x34 8004be2: fb01 f303 mul.w r3, r1, r3 8004be6: 4413 add r3, r2 8004be8: 335c adds r3, #92 ; 0x5c 8004bea: 681c ldr r4, [r3, #0] 8004bec: 88bd ldrh r5, [r7, #4] 8004bee: f7ff fbd3 bl 8004398 8004bf2: 4603 mov r3, r0 8004bf4: fb03 f205 mul.w r2, r3, r5 8004bf8: 88fb ldrh r3, [r7, #6] 8004bfa: 4413 add r3, r2 8004bfc: 005b lsls r3, r3, #1 8004bfe: 4423 add r3, r4 8004c00: 4619 mov r1, r3 8004c02: 683b ldr r3, [r7, #0] 8004c04: 0c1b lsrs r3, r3, #16 8004c06: b29b uxth r3, r3 8004c08: 021b lsls r3, r3, #8 8004c0a: b29a uxth r2, r3 8004c0c: 4b1a ldr r3, [pc, #104] ; (8004c78 ) 8004c0e: 4013 ands r3, r2 8004c10: b29a uxth r2, r3 8004c12: 683b ldr r3, [r7, #0] 8004c14: 0a1b lsrs r3, r3, #8 8004c16: b29b uxth r3, r3 8004c18: 00db lsls r3, r3, #3 8004c1a: b29b uxth r3, r3 8004c1c: f403 63fc and.w r3, r3, #2016 ; 0x7e0 8004c20: b29b uxth r3, r3 8004c22: 4313 orrs r3, r2 8004c24: b29a uxth r2, r3 8004c26: 683b ldr r3, [r7, #0] 8004c28: 08db lsrs r3, r3, #3 8004c2a: b29b uxth r3, r3 8004c2c: f003 031f and.w r3, r3, #31 8004c30: b29b uxth r3, r3 8004c32: 4313 orrs r3, r2 8004c34: b29b uxth r3, r3 8004c36: 800b strh r3, [r1, #0] } else { /* ARGB8888 format */ *(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code; } } 8004c38: e015 b.n 8004c66 *(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code; 8004c3a: 4b0d ldr r3, [pc, #52] ; (8004c70 ) 8004c3c: 681b ldr r3, [r3, #0] 8004c3e: 4a0d ldr r2, [pc, #52] ; (8004c74 ) 8004c40: 2134 movs r1, #52 ; 0x34 8004c42: fb01 f303 mul.w r3, r1, r3 8004c46: 4413 add r3, r2 8004c48: 335c adds r3, #92 ; 0x5c 8004c4a: 681c ldr r4, [r3, #0] 8004c4c: 88bd ldrh r5, [r7, #4] 8004c4e: f7ff fba3 bl 8004398 8004c52: 4603 mov r3, r0 8004c54: fb03 f205 mul.w r2, r3, r5 8004c58: 88fb ldrh r3, [r7, #6] 8004c5a: 4413 add r3, r2 8004c5c: 009b lsls r3, r3, #2 8004c5e: 4423 add r3, r4 8004c60: 461a mov r2, r3 8004c62: 683b ldr r3, [r7, #0] 8004c64: 6013 str r3, [r2, #0] } 8004c66: bf00 nop 8004c68: 3708 adds r7, #8 8004c6a: 46bd mov sp, r7 8004c6c: bdb0 pop {r4, r5, r7, pc} 8004c6e: bf00 nop 8004c70: 20020014 .word 0x20020014 8004c74: 2006b9dc .word 0x2006b9dc 8004c78: fffff800 .word 0xfffff800 08004c7c : * @param Width: Rectangle width * @param Height: Rectangle height * @retval None */ void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height) { 8004c7c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 8004c80: b086 sub sp, #24 8004c82: af02 add r7, sp, #8 8004c84: 4604 mov r4, r0 8004c86: 4608 mov r0, r1 8004c88: 4611 mov r1, r2 8004c8a: 461a mov r2, r3 8004c8c: 4623 mov r3, r4 8004c8e: 80fb strh r3, [r7, #6] 8004c90: 4603 mov r3, r0 8004c92: 80bb strh r3, [r7, #4] 8004c94: 460b mov r3, r1 8004c96: 807b strh r3, [r7, #2] 8004c98: 4613 mov r3, r2 8004c9a: 803b strh r3, [r7, #0] uint32_t x_address = 0; 8004c9c: 2300 movs r3, #0 8004c9e: 60fb str r3, [r7, #12] /* Set the text color */ BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 8004ca0: 4b30 ldr r3, [pc, #192] ; (8004d64 ) 8004ca2: 681a ldr r2, [r3, #0] 8004ca4: 4930 ldr r1, [pc, #192] ; (8004d68 ) 8004ca6: 4613 mov r3, r2 8004ca8: 005b lsls r3, r3, #1 8004caa: 4413 add r3, r2 8004cac: 009b lsls r3, r3, #2 8004cae: 440b add r3, r1 8004cb0: 681b ldr r3, [r3, #0] 8004cb2: 4618 mov r0, r3 8004cb4: f7ff fc44 bl 8004540 /* Get the rectangle start address */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8004cb8: 4b2a ldr r3, [pc, #168] ; (8004d64 ) 8004cba: 681b ldr r3, [r3, #0] 8004cbc: 4a2b ldr r2, [pc, #172] ; (8004d6c ) 8004cbe: 2134 movs r1, #52 ; 0x34 8004cc0: fb01 f303 mul.w r3, r1, r3 8004cc4: 4413 add r3, r2 8004cc6: 3348 adds r3, #72 ; 0x48 8004cc8: 681b ldr r3, [r3, #0] 8004cca: 2b02 cmp r3, #2 8004ccc: d114 bne.n 8004cf8 { /* RGB565 format */ x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos); 8004cce: 4b25 ldr r3, [pc, #148] ; (8004d64 ) 8004cd0: 681b ldr r3, [r3, #0] 8004cd2: 4a26 ldr r2, [pc, #152] ; (8004d6c ) 8004cd4: 2134 movs r1, #52 ; 0x34 8004cd6: fb01 f303 mul.w r3, r1, r3 8004cda: 4413 add r3, r2 8004cdc: 335c adds r3, #92 ; 0x5c 8004cde: 681c ldr r4, [r3, #0] 8004ce0: f7ff fb5a bl 8004398 8004ce4: 4602 mov r2, r0 8004ce6: 88bb ldrh r3, [r7, #4] 8004ce8: fb03 f202 mul.w r2, r3, r2 8004cec: 88fb ldrh r3, [r7, #6] 8004cee: 4413 add r3, r2 8004cf0: 005b lsls r3, r3, #1 8004cf2: 4423 add r3, r4 8004cf4: 60fb str r3, [r7, #12] 8004cf6: e013 b.n 8004d20 } else { /* ARGB8888 format */ x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos); 8004cf8: 4b1a ldr r3, [pc, #104] ; (8004d64 ) 8004cfa: 681b ldr r3, [r3, #0] 8004cfc: 4a1b ldr r2, [pc, #108] ; (8004d6c ) 8004cfe: 2134 movs r1, #52 ; 0x34 8004d00: fb01 f303 mul.w r3, r1, r3 8004d04: 4413 add r3, r2 8004d06: 335c adds r3, #92 ; 0x5c 8004d08: 681c ldr r4, [r3, #0] 8004d0a: f7ff fb45 bl 8004398 8004d0e: 4602 mov r2, r0 8004d10: 88bb ldrh r3, [r7, #4] 8004d12: fb03 f202 mul.w r2, r3, r2 8004d16: 88fb ldrh r3, [r7, #6] 8004d18: 4413 add r3, r2 8004d1a: 009b lsls r3, r3, #2 8004d1c: 4423 add r3, r4 8004d1e: 60fb str r3, [r7, #12] } /* Fill the rectangle */ LL_FillBuffer(ActiveLayer, (uint32_t *)x_address, Width, Height, (BSP_LCD_GetXSize() - Width), DrawProp[ActiveLayer].TextColor); 8004d20: 4b10 ldr r3, [pc, #64] ; (8004d64 ) 8004d22: 681c ldr r4, [r3, #0] 8004d24: 68fd ldr r5, [r7, #12] 8004d26: 887e ldrh r6, [r7, #2] 8004d28: f8b7 8000 ldrh.w r8, [r7] 8004d2c: f7ff fb34 bl 8004398 8004d30: 4602 mov r2, r0 8004d32: 887b ldrh r3, [r7, #2] 8004d34: 1ad1 subs r1, r2, r3 8004d36: 4b0b ldr r3, [pc, #44] ; (8004d64 ) 8004d38: 681a ldr r2, [r3, #0] 8004d3a: 480b ldr r0, [pc, #44] ; (8004d68 ) 8004d3c: 4613 mov r3, r2 8004d3e: 005b lsls r3, r3, #1 8004d40: 4413 add r3, r2 8004d42: 009b lsls r3, r3, #2 8004d44: 4403 add r3, r0 8004d46: 681b ldr r3, [r3, #0] 8004d48: 9301 str r3, [sp, #4] 8004d4a: 9100 str r1, [sp, #0] 8004d4c: 4643 mov r3, r8 8004d4e: 4632 mov r2, r6 8004d50: 4629 mov r1, r5 8004d52: 4620 mov r0, r4 8004d54: f000 f964 bl 8005020 } 8004d58: bf00 nop 8004d5a: 3710 adds r7, #16 8004d5c: 46bd mov sp, r7 8004d5e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 8004d62: bf00 nop 8004d64: 20020014 .word 0x20020014 8004d68: 2006b2b0 .word 0x2006b2b0 8004d6c: 2006b9dc .word 0x2006b9dc 08004d70 : * @param Ypos: Y position * @param Radius: Circle radius * @retval None */ void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius) { 8004d70: b580 push {r7, lr} 8004d72: b086 sub sp, #24 8004d74: af00 add r7, sp, #0 8004d76: 4603 mov r3, r0 8004d78: 80fb strh r3, [r7, #6] 8004d7a: 460b mov r3, r1 8004d7c: 80bb strh r3, [r7, #4] 8004d7e: 4613 mov r3, r2 8004d80: 807b strh r3, [r7, #2] int32_t decision; /* Decision Variable */ uint32_t current_x; /* Current X Value */ uint32_t current_y; /* Current Y Value */ decision = 3 - (Radius << 1); 8004d82: 887b ldrh r3, [r7, #2] 8004d84: 005b lsls r3, r3, #1 8004d86: f1c3 0303 rsb r3, r3, #3 8004d8a: 617b str r3, [r7, #20] current_x = 0; 8004d8c: 2300 movs r3, #0 8004d8e: 613b str r3, [r7, #16] current_y = Radius; 8004d90: 887b ldrh r3, [r7, #2] 8004d92: 60fb str r3, [r7, #12] BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 8004d94: 4b44 ldr r3, [pc, #272] ; (8004ea8 ) 8004d96: 681a ldr r2, [r3, #0] 8004d98: 4944 ldr r1, [pc, #272] ; (8004eac ) 8004d9a: 4613 mov r3, r2 8004d9c: 005b lsls r3, r3, #1 8004d9e: 4413 add r3, r2 8004da0: 009b lsls r3, r3, #2 8004da2: 440b add r3, r1 8004da4: 681b ldr r3, [r3, #0] 8004da6: 4618 mov r0, r3 8004da8: f7ff fbca bl 8004540 while (current_x <= current_y) 8004dac: e061 b.n 8004e72 { if(current_y > 0) 8004dae: 68fb ldr r3, [r7, #12] 8004db0: 2b00 cmp r3, #0 8004db2: d021 beq.n 8004df8 { BSP_LCD_DrawHLine(Xpos - current_y, Ypos + current_x, 2*current_y); 8004db4: 68fb ldr r3, [r7, #12] 8004db6: b29b uxth r3, r3 8004db8: 88fa ldrh r2, [r7, #6] 8004dba: 1ad3 subs r3, r2, r3 8004dbc: b298 uxth r0, r3 8004dbe: 693b ldr r3, [r7, #16] 8004dc0: b29a uxth r2, r3 8004dc2: 88bb ldrh r3, [r7, #4] 8004dc4: 4413 add r3, r2 8004dc6: b299 uxth r1, r3 8004dc8: 68fb ldr r3, [r7, #12] 8004dca: b29b uxth r3, r3 8004dcc: 005b lsls r3, r3, #1 8004dce: b29b uxth r3, r3 8004dd0: 461a mov r2, r3 8004dd2: f7ff fd0b bl 80047ec BSP_LCD_DrawHLine(Xpos - current_y, Ypos - current_x, 2*current_y); 8004dd6: 68fb ldr r3, [r7, #12] 8004dd8: b29b uxth r3, r3 8004dda: 88fa ldrh r2, [r7, #6] 8004ddc: 1ad3 subs r3, r2, r3 8004dde: b298 uxth r0, r3 8004de0: 693b ldr r3, [r7, #16] 8004de2: b29b uxth r3, r3 8004de4: 88ba ldrh r2, [r7, #4] 8004de6: 1ad3 subs r3, r2, r3 8004de8: b299 uxth r1, r3 8004dea: 68fb ldr r3, [r7, #12] 8004dec: b29b uxth r3, r3 8004dee: 005b lsls r3, r3, #1 8004df0: b29b uxth r3, r3 8004df2: 461a mov r2, r3 8004df4: f7ff fcfa bl 80047ec } if(current_x > 0) 8004df8: 693b ldr r3, [r7, #16] 8004dfa: 2b00 cmp r3, #0 8004dfc: d021 beq.n 8004e42 { BSP_LCD_DrawHLine(Xpos - current_x, Ypos - current_y, 2*current_x); 8004dfe: 693b ldr r3, [r7, #16] 8004e00: b29b uxth r3, r3 8004e02: 88fa ldrh r2, [r7, #6] 8004e04: 1ad3 subs r3, r2, r3 8004e06: b298 uxth r0, r3 8004e08: 68fb ldr r3, [r7, #12] 8004e0a: b29b uxth r3, r3 8004e0c: 88ba ldrh r2, [r7, #4] 8004e0e: 1ad3 subs r3, r2, r3 8004e10: b299 uxth r1, r3 8004e12: 693b ldr r3, [r7, #16] 8004e14: b29b uxth r3, r3 8004e16: 005b lsls r3, r3, #1 8004e18: b29b uxth r3, r3 8004e1a: 461a mov r2, r3 8004e1c: f7ff fce6 bl 80047ec BSP_LCD_DrawHLine(Xpos - current_x, Ypos + current_y, 2*current_x); 8004e20: 693b ldr r3, [r7, #16] 8004e22: b29b uxth r3, r3 8004e24: 88fa ldrh r2, [r7, #6] 8004e26: 1ad3 subs r3, r2, r3 8004e28: b298 uxth r0, r3 8004e2a: 68fb ldr r3, [r7, #12] 8004e2c: b29a uxth r2, r3 8004e2e: 88bb ldrh r3, [r7, #4] 8004e30: 4413 add r3, r2 8004e32: b299 uxth r1, r3 8004e34: 693b ldr r3, [r7, #16] 8004e36: b29b uxth r3, r3 8004e38: 005b lsls r3, r3, #1 8004e3a: b29b uxth r3, r3 8004e3c: 461a mov r2, r3 8004e3e: f7ff fcd5 bl 80047ec } if (decision < 0) 8004e42: 697b ldr r3, [r7, #20] 8004e44: 2b00 cmp r3, #0 8004e46: da06 bge.n 8004e56 { decision += (current_x << 2) + 6; 8004e48: 693b ldr r3, [r7, #16] 8004e4a: 009a lsls r2, r3, #2 8004e4c: 697b ldr r3, [r7, #20] 8004e4e: 4413 add r3, r2 8004e50: 3306 adds r3, #6 8004e52: 617b str r3, [r7, #20] 8004e54: e00a b.n 8004e6c } else { decision += ((current_x - current_y) << 2) + 10; 8004e56: 693a ldr r2, [r7, #16] 8004e58: 68fb ldr r3, [r7, #12] 8004e5a: 1ad3 subs r3, r2, r3 8004e5c: 009a lsls r2, r3, #2 8004e5e: 697b ldr r3, [r7, #20] 8004e60: 4413 add r3, r2 8004e62: 330a adds r3, #10 8004e64: 617b str r3, [r7, #20] current_y--; 8004e66: 68fb ldr r3, [r7, #12] 8004e68: 3b01 subs r3, #1 8004e6a: 60fb str r3, [r7, #12] } current_x++; 8004e6c: 693b ldr r3, [r7, #16] 8004e6e: 3301 adds r3, #1 8004e70: 613b str r3, [r7, #16] while (current_x <= current_y) 8004e72: 693a ldr r2, [r7, #16] 8004e74: 68fb ldr r3, [r7, #12] 8004e76: 429a cmp r2, r3 8004e78: d999 bls.n 8004dae } BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor); 8004e7a: 4b0b ldr r3, [pc, #44] ; (8004ea8 ) 8004e7c: 681a ldr r2, [r3, #0] 8004e7e: 490b ldr r1, [pc, #44] ; (8004eac ) 8004e80: 4613 mov r3, r2 8004e82: 005b lsls r3, r3, #1 8004e84: 4413 add r3, r2 8004e86: 009b lsls r3, r3, #2 8004e88: 440b add r3, r1 8004e8a: 681b ldr r3, [r3, #0] 8004e8c: 4618 mov r0, r3 8004e8e: f7ff fb57 bl 8004540 BSP_LCD_DrawCircle(Xpos, Ypos, Radius); 8004e92: 887a ldrh r2, [r7, #2] 8004e94: 88b9 ldrh r1, [r7, #4] 8004e96: 88fb ldrh r3, [r7, #6] 8004e98: 4618 mov r0, r3 8004e9a: f7ff fd9b bl 80049d4 } 8004e9e: bf00 nop 8004ea0: 3718 adds r7, #24 8004ea2: 46bd mov sp, r7 8004ea4: bd80 pop {r7, pc} 8004ea6: bf00 nop 8004ea8: 20020014 .word 0x20020014 8004eac: 2006b2b0 .word 0x2006b2b0 08004eb0 : * @param Ypos: Start column address * @param c: Pointer to the character data * @retval None */ static void DrawChar(uint16_t Xpos, uint16_t Ypos, const uint8_t *c) { 8004eb0: b580 push {r7, lr} 8004eb2: b088 sub sp, #32 8004eb4: af00 add r7, sp, #0 8004eb6: 4603 mov r3, r0 8004eb8: 603a str r2, [r7, #0] 8004eba: 80fb strh r3, [r7, #6] 8004ebc: 460b mov r3, r1 8004ebe: 80bb strh r3, [r7, #4] uint32_t i = 0, j = 0; 8004ec0: 2300 movs r3, #0 8004ec2: 61fb str r3, [r7, #28] 8004ec4: 2300 movs r3, #0 8004ec6: 61bb str r3, [r7, #24] uint8_t offset; uint8_t *pchar; uint32_t line; //uint16_t b; height = DrawProp[ActiveLayer].pFont->Height; 8004ec8: 4b53 ldr r3, [pc, #332] ; (8005018 ) 8004eca: 681a ldr r2, [r3, #0] 8004ecc: 4953 ldr r1, [pc, #332] ; (800501c ) 8004ece: 4613 mov r3, r2 8004ed0: 005b lsls r3, r3, #1 8004ed2: 4413 add r3, r2 8004ed4: 009b lsls r3, r3, #2 8004ed6: 440b add r3, r1 8004ed8: 3308 adds r3, #8 8004eda: 681b ldr r3, [r3, #0] 8004edc: 88db ldrh r3, [r3, #6] 8004ede: 827b strh r3, [r7, #18] width = DrawProp[ActiveLayer].pFont->Width; 8004ee0: 4b4d ldr r3, [pc, #308] ; (8005018 ) 8004ee2: 681a ldr r2, [r3, #0] 8004ee4: 494d ldr r1, [pc, #308] ; (800501c ) 8004ee6: 4613 mov r3, r2 8004ee8: 005b lsls r3, r3, #1 8004eea: 4413 add r3, r2 8004eec: 009b lsls r3, r3, #2 8004eee: 440b add r3, r1 8004ef0: 3308 adds r3, #8 8004ef2: 681b ldr r3, [r3, #0] 8004ef4: 889b ldrh r3, [r3, #4] 8004ef6: 823b strh r3, [r7, #16] offset = 8 *((width + 7)/8) - width ; 8004ef8: 8a3b ldrh r3, [r7, #16] 8004efa: 3307 adds r3, #7 8004efc: 2b00 cmp r3, #0 8004efe: da00 bge.n 8004f02 8004f00: 3307 adds r3, #7 8004f02: 10db asrs r3, r3, #3 8004f04: b2db uxtb r3, r3 8004f06: 00db lsls r3, r3, #3 8004f08: b2da uxtb r2, r3 8004f0a: 8a3b ldrh r3, [r7, #16] 8004f0c: b2db uxtb r3, r3 8004f0e: 1ad3 subs r3, r2, r3 8004f10: 73fb strb r3, [r7, #15] for(i = 0; i < height; i++) 8004f12: 2300 movs r3, #0 8004f14: 61fb str r3, [r7, #28] 8004f16: e076 b.n 8005006 { pchar = ((uint8_t *)c + (width + 7)/8 * i); 8004f18: 8a3b ldrh r3, [r7, #16] 8004f1a: 3307 adds r3, #7 8004f1c: 2b00 cmp r3, #0 8004f1e: da00 bge.n 8004f22 8004f20: 3307 adds r3, #7 8004f22: 10db asrs r3, r3, #3 8004f24: 461a mov r2, r3 8004f26: 69fb ldr r3, [r7, #28] 8004f28: fb03 f302 mul.w r3, r3, r2 8004f2c: 683a ldr r2, [r7, #0] 8004f2e: 4413 add r3, r2 8004f30: 60bb str r3, [r7, #8] switch(((width + 7)/8)) 8004f32: 8a3b ldrh r3, [r7, #16] 8004f34: 3307 adds r3, #7 8004f36: 2b00 cmp r3, #0 8004f38: da00 bge.n 8004f3c 8004f3a: 3307 adds r3, #7 8004f3c: 10db asrs r3, r3, #3 8004f3e: 2b01 cmp r3, #1 8004f40: d002 beq.n 8004f48 8004f42: 2b02 cmp r3, #2 8004f44: d004 beq.n 8004f50 8004f46: e00c b.n 8004f62 { case 1: line = pchar[0]; 8004f48: 68bb ldr r3, [r7, #8] 8004f4a: 781b ldrb r3, [r3, #0] 8004f4c: 617b str r3, [r7, #20] break; 8004f4e: e016 b.n 8004f7e case 2: line = (pchar[0]<< 8) | pchar[1]; 8004f50: 68bb ldr r3, [r7, #8] 8004f52: 781b ldrb r3, [r3, #0] 8004f54: 021b lsls r3, r3, #8 8004f56: 68ba ldr r2, [r7, #8] 8004f58: 3201 adds r2, #1 8004f5a: 7812 ldrb r2, [r2, #0] 8004f5c: 4313 orrs r3, r2 8004f5e: 617b str r3, [r7, #20] break; 8004f60: e00d b.n 8004f7e case 3: default: line = (pchar[0]<< 16) | (pchar[1]<< 8) | pchar[2]; 8004f62: 68bb ldr r3, [r7, #8] 8004f64: 781b ldrb r3, [r3, #0] 8004f66: 041a lsls r2, r3, #16 8004f68: 68bb ldr r3, [r7, #8] 8004f6a: 3301 adds r3, #1 8004f6c: 781b ldrb r3, [r3, #0] 8004f6e: 021b lsls r3, r3, #8 8004f70: 4313 orrs r3, r2 8004f72: 68ba ldr r2, [r7, #8] 8004f74: 3202 adds r2, #2 8004f76: 7812 ldrb r2, [r2, #0] 8004f78: 4313 orrs r3, r2 8004f7a: 617b str r3, [r7, #20] break; 8004f7c: bf00 nop } for (j = 0; j < width; j++) 8004f7e: 2300 movs r3, #0 8004f80: 61bb str r3, [r7, #24] 8004f82: e036 b.n 8004ff2 { if(line & (1 << (width- j + offset- 1))) 8004f84: 8a3a ldrh r2, [r7, #16] 8004f86: 69bb ldr r3, [r7, #24] 8004f88: 1ad2 subs r2, r2, r3 8004f8a: 7bfb ldrb r3, [r7, #15] 8004f8c: 4413 add r3, r2 8004f8e: 3b01 subs r3, #1 8004f90: 2201 movs r2, #1 8004f92: fa02 f303 lsl.w r3, r2, r3 8004f96: 461a mov r2, r3 8004f98: 697b ldr r3, [r7, #20] 8004f9a: 4013 ands r3, r2 8004f9c: 2b00 cmp r3, #0 8004f9e: d012 beq.n 8004fc6 { BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].TextColor); 8004fa0: 69bb ldr r3, [r7, #24] 8004fa2: b29a uxth r2, r3 8004fa4: 88fb ldrh r3, [r7, #6] 8004fa6: 4413 add r3, r2 8004fa8: b298 uxth r0, r3 8004faa: 4b1b ldr r3, [pc, #108] ; (8005018 ) 8004fac: 681a ldr r2, [r3, #0] 8004fae: 491b ldr r1, [pc, #108] ; (800501c ) 8004fb0: 4613 mov r3, r2 8004fb2: 005b lsls r3, r3, #1 8004fb4: 4413 add r3, r2 8004fb6: 009b lsls r3, r3, #2 8004fb8: 440b add r3, r1 8004fba: 681a ldr r2, [r3, #0] 8004fbc: 88bb ldrh r3, [r7, #4] 8004fbe: 4619 mov r1, r3 8004fc0: f7ff fdf8 bl 8004bb4 8004fc4: e012 b.n 8004fec } else { BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].BackColor); 8004fc6: 69bb ldr r3, [r7, #24] 8004fc8: b29a uxth r2, r3 8004fca: 88fb ldrh r3, [r7, #6] 8004fcc: 4413 add r3, r2 8004fce: b298 uxth r0, r3 8004fd0: 4b11 ldr r3, [pc, #68] ; (8005018 ) 8004fd2: 681a ldr r2, [r3, #0] 8004fd4: 4911 ldr r1, [pc, #68] ; (800501c ) 8004fd6: 4613 mov r3, r2 8004fd8: 005b lsls r3, r3, #1 8004fda: 4413 add r3, r2 8004fdc: 009b lsls r3, r3, #2 8004fde: 440b add r3, r1 8004fe0: 3304 adds r3, #4 8004fe2: 681a ldr r2, [r3, #0] 8004fe4: 88bb ldrh r3, [r7, #4] 8004fe6: 4619 mov r1, r3 8004fe8: f7ff fde4 bl 8004bb4 for (j = 0; j < width; j++) 8004fec: 69bb ldr r3, [r7, #24] 8004fee: 3301 adds r3, #1 8004ff0: 61bb str r3, [r7, #24] 8004ff2: 8a3a ldrh r2, [r7, #16] 8004ff4: 69bb ldr r3, [r7, #24] 8004ff6: 429a cmp r2, r3 8004ff8: d8c4 bhi.n 8004f84 } } Ypos++; 8004ffa: 88bb ldrh r3, [r7, #4] 8004ffc: 3301 adds r3, #1 8004ffe: 80bb strh r3, [r7, #4] for(i = 0; i < height; i++) 8005000: 69fb ldr r3, [r7, #28] 8005002: 3301 adds r3, #1 8005004: 61fb str r3, [r7, #28] 8005006: 8a7a ldrh r2, [r7, #18] 8005008: 69fb ldr r3, [r7, #28] 800500a: 429a cmp r2, r3 800500c: d884 bhi.n 8004f18 } } 800500e: bf00 nop 8005010: 3720 adds r7, #32 8005012: 46bd mov sp, r7 8005014: bd80 pop {r7, pc} 8005016: bf00 nop 8005018: 20020014 .word 0x20020014 800501c: 2006b2b0 .word 0x2006b2b0 08005020 : * @param OffLine: Offset * @param ColorIndex: Color index * @retval None */ static void LL_FillBuffer(uint32_t LayerIndex, void *pDst, uint32_t xSize, uint32_t ySize, uint32_t OffLine, uint32_t ColorIndex) { 8005020: b580 push {r7, lr} 8005022: b086 sub sp, #24 8005024: af02 add r7, sp, #8 8005026: 60f8 str r0, [r7, #12] 8005028: 60b9 str r1, [r7, #8] 800502a: 607a str r2, [r7, #4] 800502c: 603b str r3, [r7, #0] /* Register to memory mode with ARGB8888 as color Mode */ hDma2dHandler.Init.Mode = DMA2D_R2M; 800502e: 4b1e ldr r3, [pc, #120] ; (80050a8 ) 8005030: f44f 3240 mov.w r2, #196608 ; 0x30000 8005034: 605a str r2, [r3, #4] if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) 8005036: 4b1d ldr r3, [pc, #116] ; (80050ac ) 8005038: 681b ldr r3, [r3, #0] 800503a: 4a1d ldr r2, [pc, #116] ; (80050b0 ) 800503c: 2134 movs r1, #52 ; 0x34 800503e: fb01 f303 mul.w r3, r1, r3 8005042: 4413 add r3, r2 8005044: 3348 adds r3, #72 ; 0x48 8005046: 681b ldr r3, [r3, #0] 8005048: 2b02 cmp r3, #2 800504a: d103 bne.n 8005054 hDma2dHandler.Init.ColorMode = DMA2D_RGB565; 800504c: 4b16 ldr r3, [pc, #88] ; (80050a8 ) 800504e: 2202 movs r2, #2 8005050: 609a str r2, [r3, #8] 8005052: e002 b.n 800505a else hDma2dHandler.Init.ColorMode = DMA2D_ARGB8888; 8005054: 4b14 ldr r3, [pc, #80] ; (80050a8 ) 8005056: 2200 movs r2, #0 8005058: 609a str r2, [r3, #8] hDma2dHandler.Init.OutputOffset = OffLine; 800505a: 4a13 ldr r2, [pc, #76] ; (80050a8 ) 800505c: 69bb ldr r3, [r7, #24] 800505e: 60d3 str r3, [r2, #12] hDma2dHandler.Instance = DMA2D; 8005060: 4b11 ldr r3, [pc, #68] ; (80050a8 ) 8005062: 4a14 ldr r2, [pc, #80] ; (80050b4 ) 8005064: 601a str r2, [r3, #0] if(HAL_DMA2D_Init(&hDma2dHandler) == HAL_OK) 8005066: 4810 ldr r0, [pc, #64] ; (80050a8 ) 8005068: f009 f8a6 bl 800e1b8 800506c: 4603 mov r3, r0 800506e: 2b00 cmp r3, #0 8005070: d115 bne.n 800509e { if(HAL_DMA2D_ConfigLayer(&hDma2dHandler, LayerIndex) == HAL_OK) 8005072: 68f9 ldr r1, [r7, #12] 8005074: 480c ldr r0, [pc, #48] ; (80050a8 ) 8005076: f009 fa0d bl 800e494 800507a: 4603 mov r3, r0 800507c: 2b00 cmp r3, #0 800507e: d10e bne.n 800509e { if (HAL_DMA2D_Start(&hDma2dHandler, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK) 8005080: 68ba ldr r2, [r7, #8] 8005082: 683b ldr r3, [r7, #0] 8005084: 9300 str r3, [sp, #0] 8005086: 687b ldr r3, [r7, #4] 8005088: 69f9 ldr r1, [r7, #28] 800508a: 4807 ldr r0, [pc, #28] ; (80050a8 ) 800508c: f009 f8ee bl 800e26c 8005090: 4603 mov r3, r0 8005092: 2b00 cmp r3, #0 8005094: d103 bne.n 800509e { HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30); 8005096: 211e movs r1, #30 8005098: 4803 ldr r0, [pc, #12] ; (80050a8 ) 800509a: f009 f912 bl 800e2c2 } } } } 800509e: bf00 nop 80050a0: 3710 adds r7, #16 80050a2: 46bd mov sp, r7 80050a4: bd80 pop {r7, pc} 80050a6: bf00 nop 80050a8: 2006b258 .word 0x2006b258 80050ac: 20020014 .word 0x20020014 80050b0: 2006b9dc .word 0x2006b9dc 80050b4: 4002b000 .word 0x4002b000 080050b8 : } } void DrawImage(const GUI_BITMAP * pBM, uint16_t x0, uint16_t y0) { 80050b8: b580 push {r7, lr} 80050ba: b088 sub sp, #32 80050bc: af02 add r7, sp, #8 80050be: 6078 str r0, [r7, #4] 80050c0: 460b mov r3, r1 80050c2: 807b strh r3, [r7, #2] 80050c4: 4613 mov r3, r2 80050c6: 803b strh r3, [r7, #0] //HAL_StatusTypeDef hal_status = HAL_OK; uint32_t Xaddress = 0; 80050c8: 2300 movs r3, #0 80050ca: 617b str r3, [r7, #20] uint8_t * p; uint16_t xSize = pBM->XSize; 80050cc: 687b ldr r3, [r7, #4] 80050ce: 881b ldrh r3, [r3, #0] 80050d0: 827b strh r3, [r7, #18] uint16_t ySize = pBM->YSize; 80050d2: 687b ldr r3, [r7, #4] 80050d4: 885b ldrh r3, [r3, #2] 80050d6: 823b strh r3, [r7, #16] //uint16_t BytesPerLine = pBM->BytesPerLine; p = (uint8_t *) pBM->pData; 80050d8: 687b ldr r3, [r7, #4] 80050da: 689b ldr r3, [r3, #8] 80050dc: 60fb str r3, [r7, #12] Xaddress = hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + ((320 * y0 + x0) << 1); 80050de: 4b39 ldr r3, [pc, #228] ; (80051c4 ) 80050e0: 681b ldr r3, [r3, #0] 80050e2: 4a39 ldr r2, [pc, #228] ; (80051c8 ) 80050e4: 2134 movs r1, #52 ; 0x34 80050e6: fb01 f303 mul.w r3, r1, r3 80050ea: 4413 add r3, r2 80050ec: 335c adds r3, #92 ; 0x5c 80050ee: 6819 ldr r1, [r3, #0] 80050f0: 883a ldrh r2, [r7, #0] 80050f2: 4613 mov r3, r2 80050f4: 009b lsls r3, r3, #2 80050f6: 4413 add r3, r2 80050f8: 019b lsls r3, r3, #6 80050fa: 461a mov r2, r3 80050fc: 887b ldrh r3, [r7, #2] 80050fe: 4413 add r3, r2 8005100: 005b lsls r3, r3, #1 8005102: 440b add r3, r1 8005104: 617b str r3, [r7, #20] hDma2dHandler.Init.Mode = DMA2D_M2M; 8005106: 4b31 ldr r3, [pc, #196] ; (80051cc ) 8005108: 2200 movs r2, #0 800510a: 605a str r2, [r3, #4] hDma2dHandler.Init.ColorMode = DMA2D_RGB565; 800510c: 4b2f ldr r3, [pc, #188] ; (80051cc ) 800510e: 2202 movs r2, #2 8005110: 609a str r2, [r3, #8] hDma2dHandler.Init.OutputOffset = 320 - xSize; 8005112: 8a7b ldrh r3, [r7, #18] 8005114: f5c3 73a0 rsb r3, r3, #320 ; 0x140 8005118: 461a mov r2, r3 800511a: 4b2c ldr r3, [pc, #176] ; (80051cc ) 800511c: 60da str r2, [r3, #12] /* DMA2D Callbacks Configuration */ hDma2dHandler.XferCpltCallback = TransferComplete; 800511e: 4b2b ldr r3, [pc, #172] ; (80051cc ) 8005120: 4a2b ldr r2, [pc, #172] ; (80051d0 ) 8005122: 619a str r2, [r3, #24] hDma2dHandler.XferErrorCallback = TransferError; 8005124: 4b29 ldr r3, [pc, #164] ; (80051cc ) 8005126: 4a2b ldr r2, [pc, #172] ; (80051d4 ) 8005128: 61da str r2, [r3, #28] /* Foreground layer Configuration : layer 1 */ hDma2dHandler.LayerCfg[ActiveLayer].AlphaMode = DMA2D_NO_MODIF_ALPHA; 800512a: 4b26 ldr r3, [pc, #152] ; (80051c4 ) 800512c: 681a ldr r2, [r3, #0] 800512e: 4927 ldr r1, [pc, #156] ; (80051cc ) 8005130: 4613 mov r3, r2 8005132: 005b lsls r3, r3, #1 8005134: 4413 add r3, r2 8005136: 00db lsls r3, r3, #3 8005138: 440b add r3, r1 800513a: 3328 adds r3, #40 ; 0x28 800513c: 2200 movs r2, #0 800513e: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputAlpha = 255; /* Alpha fully opaque */ 8005140: 4b20 ldr r3, [pc, #128] ; (80051c4 ) 8005142: 681a ldr r2, [r3, #0] 8005144: 4921 ldr r1, [pc, #132] ; (80051cc ) 8005146: 4613 mov r3, r2 8005148: 005b lsls r3, r3, #1 800514a: 4413 add r3, r2 800514c: 00db lsls r3, r3, #3 800514e: 440b add r3, r1 8005150: 332c adds r3, #44 ; 0x2c 8005152: 22ff movs r2, #255 ; 0xff 8005154: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputColorMode = DMA2D_INPUT_RGB565; /* Layer 1 input format is ARGB8888 (32 bpp) */ 8005156: 4b1b ldr r3, [pc, #108] ; (80051c4 ) 8005158: 681a ldr r2, [r3, #0] 800515a: 491c ldr r1, [pc, #112] ; (80051cc ) 800515c: 4613 mov r3, r2 800515e: 005b lsls r3, r3, #1 8005160: 4413 add r3, r2 8005162: 00db lsls r3, r3, #3 8005164: 440b add r3, r1 8005166: 3324 adds r3, #36 ; 0x24 8005168: 2202 movs r2, #2 800516a: 601a str r2, [r3, #0] hDma2dHandler.LayerCfg[ActiveLayer].InputOffset = 0; /* No offset in input */ 800516c: 4b15 ldr r3, [pc, #84] ; (80051c4 ) 800516e: 681a ldr r2, [r3, #0] 8005170: 4916 ldr r1, [pc, #88] ; (80051cc ) 8005172: 4613 mov r3, r2 8005174: 005b lsls r3, r3, #1 8005176: 4413 add r3, r2 8005178: 00db lsls r3, r3, #3 800517a: 440b add r3, r1 800517c: 3320 adds r3, #32 800517e: 2200 movs r2, #0 8005180: 601a str r2, [r3, #0] hDma2dHandler.Instance = DMA2D; 8005182: 4b12 ldr r3, [pc, #72] ; (80051cc ) 8005184: 4a14 ldr r2, [pc, #80] ; (80051d8 ) 8005186: 601a str r2, [r3, #0] /* DMA2D Initialization */ HAL_DMA2D_Init(&hDma2dHandler); 8005188: 4810 ldr r0, [pc, #64] ; (80051cc ) 800518a: f009 f815 bl 800e1b8 HAL_DMA2D_ConfigLayer(&hDma2dHandler, ActiveLayer); 800518e: 4b0d ldr r3, [pc, #52] ; (80051c4 ) 8005190: 681b ldr r3, [r3, #0] 8005192: 4619 mov r1, r3 8005194: 480d ldr r0, [pc, #52] ; (80051cc ) 8005196: f009 f97d bl 800e494 DMA2D_TransferOk = 0; 800519a: 4b10 ldr r3, [pc, #64] ; (80051dc ) 800519c: 2200 movs r2, #0 800519e: 601a str r2, [r3, #0] HAL_DMA2D_Start(&hDma2dHandler, (uint32_t) p, Xaddress, xSize, ySize); 80051a0: 68f9 ldr r1, [r7, #12] 80051a2: 8a7a ldrh r2, [r7, #18] 80051a4: 8a3b ldrh r3, [r7, #16] 80051a6: 9300 str r3, [sp, #0] 80051a8: 4613 mov r3, r2 80051aa: 697a ldr r2, [r7, #20] 80051ac: 4807 ldr r0, [pc, #28] ; (80051cc ) 80051ae: f009 f85d bl 800e26c HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30); 80051b2: 211e movs r1, #30 80051b4: 4805 ldr r0, [pc, #20] ; (80051cc ) 80051b6: f009 f884 bl 800e2c2 //SCB_CleanInvalidateDCache(); } 80051ba: bf00 nop 80051bc: 3718 adds r7, #24 80051be: 46bd mov sp, r7 80051c0: bd80 pop {r7, pc} 80051c2: bf00 nop 80051c4: 20020014 .word 0x20020014 80051c8: 2006b9dc .word 0x2006b9dc 80051cc: 2006b258 .word 0x2006b258 80051d0: 080051e1 .word 0x080051e1 80051d4: 08005201 .word 0x08005201 80051d8: 4002b000 .word 0x4002b000 80051dc: 20020018 .word 0x20020018 080051e0 : static void TransferComplete(DMA2D_HandleTypeDef *hdma2d) { 80051e0: b480 push {r7} 80051e2: b083 sub sp, #12 80051e4: af00 add r7, sp, #0 80051e6: 6078 str r0, [r7, #4] DMA2D_TransferOk = 1; 80051e8: 4b04 ldr r3, [pc, #16] ; (80051fc ) 80051ea: 2201 movs r2, #1 80051ec: 601a str r2, [r3, #0] } 80051ee: bf00 nop 80051f0: 370c adds r7, #12 80051f2: 46bd mov sp, r7 80051f4: f85d 7b04 ldr.w r7, [sp], #4 80051f8: 4770 bx lr 80051fa: bf00 nop 80051fc: 20020018 .word 0x20020018 08005200 : static void TransferError(DMA2D_HandleTypeDef *hdma2d) { 8005200: b480 push {r7} 8005202: b083 sub sp, #12 8005204: af00 add r7, sp, #0 8005206: 6078 str r0, [r7, #4] } 8005208: bf00 nop 800520a: 370c adds r7, #12 800520c: 46bd mov sp, r7 800520e: f85d 7b04 ldr.w r7, [sp], #4 8005212: 4770 bx lr 08005214 : void LCD_Refresh(void) { 8005214: b580 push {r7, lr} 8005216: af00 add r7, sp, #0 ActiveLayer ^= 1; 8005218: 4b0e ldr r3, [pc, #56] ; (8005254 ) 800521a: 681b ldr r3, [r3, #0] 800521c: f083 0301 eor.w r3, r3, #1 8005220: 4a0c ldr r2, [pc, #48] ; (8005254 ) 8005222: 6013 str r3, [r2, #0] RenderingLayer ^= 1; 8005224: 4b0c ldr r3, [pc, #48] ; (8005258 ) 8005226: 681b ldr r3, [r3, #0] 8005228: f083 0301 eor.w r3, r3, #1 800522c: 4a0a ldr r2, [pc, #40] ; (8005258 ) 800522e: 6013 str r3, [r2, #0] BSP_LCD_SetLayerVisible_NoReload(ActiveLayer, DISABLE); 8005230: 4b08 ldr r3, [pc, #32] ; (8005254 ) 8005232: 681b ldr r3, [r3, #0] 8005234: 2100 movs r1, #0 8005236: 4618 mov r0, r3 8005238: f7ff f926 bl 8004488 BSP_LCD_SetLayerVisible_NoReload(RenderingLayer, ENABLE); 800523c: 4b06 ldr r3, [pc, #24] ; (8005258 ) 800523e: 681b ldr r3, [r3, #0] 8005240: 2101 movs r1, #1 8005242: 4618 mov r0, r3 8005244: f7ff f920 bl 8004488 HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE); 8005248: 2101 movs r1, #1 800524a: 4804 ldr r0, [pc, #16] ; (800525c ) 800524c: f009 fe4c bl 800eee8 //BSP_LCD_Reload(LCD_RELOAD_VERTICAL_BLANKING); } 8005250: bf00 nop 8005252: bd80 pop {r7, pc} 8005254: 20020014 .word 0x20020014 8005258: 2006b2c8 .word 0x2006b2c8 800525c: 2006b9dc .word 0x2006b9dc 08005260 : void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc) { 8005260: b580 push {r7, lr} 8005262: b082 sub sp, #8 8005264: af00 add r7, sp, #0 8005266: 6078 str r0, [r7, #4] if(RefreshScreen) 8005268: 4b06 ldr r3, [pc, #24] ; (8005284 ) 800526a: 781b ldrb r3, [r3, #0] 800526c: b2db uxtb r3, r3 800526e: 2b00 cmp r3, #0 8005270: d004 beq.n 800527c { LCD_Refresh(); 8005272: f7ff ffcf bl 8005214 RefreshScreen = false; 8005276: 4b03 ldr r3, [pc, #12] ; (8005284 ) 8005278: 2200 movs r2, #0 800527a: 701a strb r2, [r3, #0] } } 800527c: bf00 nop 800527e: 3708 adds r7, #8 8005280: 46bd mov sp, r7 8005282: bd80 pop {r7, pc} 8005284: 2006b2cc .word 0x2006b2cc 08005288
: const char _VERSION[] = "VER 1.203.0\0"; volatile char _SERIAL_DRAW[10] = {'S', 'N', ' ', '2', '3', '0', '0', '1', 0, 0}; int main(void) { 8005288: b580 push {r7, lr} 800528a: b092 sub sp, #72 ; 0x48 800528c: af00 add r7, sp, #0 uint32_t cnt = 0, i, j, k, l; 800528e: 2300 movs r3, #0 8005290: 63fb str r3, [r7, #60] ; 0x3c float32_t f; char str[50]; uint32_t keys = 0; 8005292: 2300 movs r3, #0 8005294: 63bb str r3, [r7, #56] ; 0x38 HAL_Init(); 8005296: f008 fba5 bl 800d9e4 SystemClock_Config(); 800529a: f000 f8e1 bl 8005460 MX_GPIO_Init(); 800529e: f7fb f9df bl 8000660 MX_DMA2D_Init(); 80052a2: f7fb f985 bl 80005b0 MX_TIM7_Init(); 80052a6: f006 fddb bl 800be60 MX_LTDC_Init(); 80052aa: f7fe fe71 bl 8003f90 initKeys(); 80052ae: f7fb facb bl 8000848 /////////////////////////////// todo CNT_CHANNELS = 4; 80052b2: 4b60 ldr r3, [pc, #384] ; (8005434 ) 80052b4: 2204 movs r2, #4 80052b6: 601a str r2, [r3, #0] ACTIVE_CHANNEL = Ch1; 80052b8: 4b5f ldr r3, [pc, #380] ; (8005438 ) 80052ba: 2200 movs r2, #0 80052bc: 601a str r2, [r3, #0] menupos = Input; 80052be: 4b5f ldr r3, [pc, #380] ; (800543c ) 80052c0: 2200 movs r2, #0 80052c2: 701a strb r2, [r3, #0] for(i = 0; i < 16; i++) 80052c4: 2300 movs r3, #0 80052c6: 647b str r3, [r7, #68] ; 0x44 80052c8: e05d b.n 8005386 { pardata.amplif[i].IIN = CHARGE; 80052ca: 4a5d ldr r2, [pc, #372] ; (8005440 ) 80052cc: 6c7b ldr r3, [r7, #68] ; 0x44 80052ce: 015b lsls r3, r3, #5 80052d0: 4413 add r3, r2 80052d2: 2200 movs r2, #0 80052d4: 801a strh r2, [r3, #0] pardata.amplif[i].IFV = Hp0_2; 80052d6: 4a5a ldr r2, [pc, #360] ; (8005440 ) 80052d8: 6c7b ldr r3, [r7, #68] ; 0x44 80052da: 015b lsls r3, r3, #5 80052dc: 4413 add r3, r2 80052de: 3302 adds r3, #2 80052e0: 2200 movs r2, #0 80052e2: 801a strh r2, [r3, #0] pardata.amplif[i].IFN = Lp100000; 80052e4: 4a56 ldr r2, [pc, #344] ; (8005440 ) 80052e6: 6c7b ldr r3, [r7, #68] ; 0x44 80052e8: 015b lsls r3, r3, #5 80052ea: 4413 add r3, r2 80052ec: 3304 adds r3, #4 80052ee: 2207 movs r2, #7 80052f0: 801a strh r2, [r3, #0] pardata.amplif[i].IKU = Ku1000; 80052f2: 4a53 ldr r2, [pc, #332] ; (8005440 ) 80052f4: 6c7b ldr r3, [r7, #68] ; 0x44 80052f6: 015b lsls r3, r3, #5 80052f8: 4413 add r3, r2 80052fa: 3306 adds r3, #6 80052fc: 220c movs r2, #12 80052fe: 801a strh r2, [r3, #0] pardata.amplif[i].IKS = 0; 8005300: 4a4f ldr r2, [pc, #316] ; (8005440 ) 8005302: 6c7b ldr r3, [r7, #68] ; 0x44 8005304: 015b lsls r3, r3, #5 8005306: 4413 add r3, r2 8005308: 330c adds r3, #12 800530a: 2200 movs r2, #0 800530c: 801a strh r2, [r3, #0] pardata.amplif[i].IKD = 0; 800530e: 4a4c ldr r2, [pc, #304] ; (8005440 ) 8005310: 6c7b ldr r3, [r7, #68] ; 0x44 8005312: 015b lsls r3, r3, #5 8005314: 4413 add r3, r2 8005316: 330a adds r3, #10 8005318: 2200 movs r2, #0 800531a: 801a strh r2, [r3, #0] pardata.amplif[i].IKE = 1; 800531c: 4a48 ldr r2, [pc, #288] ; (8005440 ) 800531e: 6c7b ldr r3, [r7, #68] ; 0x44 8005320: 015b lsls r3, r3, #5 8005322: 4413 add r3, r2 8005324: 3308 adds r3, #8 8005326: 2201 movs r2, #1 8005328: 801a strh r2, [r3, #0] pardata.amplif[i].IPZ = 0; 800532a: 4a45 ldr r2, [pc, #276] ; (8005440 ) 800532c: 6c7b ldr r3, [r7, #68] ; 0x44 800532e: 015b lsls r3, r3, #5 8005330: 4413 add r3, r2 8005332: 330e adds r3, #14 8005334: 2200 movs r2, #0 8005336: 801a strh r2, [r3, #0] pardata.amplif[i].OPZ = 0; 8005338: 4a41 ldr r2, [pc, #260] ; (8005440 ) 800533a: 6c7b ldr r3, [r7, #68] ; 0x44 800533c: 015b lsls r3, r3, #5 800533e: 4413 add r3, r2 8005340: 3310 adds r3, #16 8005342: 2200 movs r2, #0 8005344: 801a strh r2, [r3, #0] pardata.amplif[i].VAL = Accel; 8005346: 4a3e ldr r2, [pc, #248] ; (8005440 ) 8005348: 6c7b ldr r3, [r7, #68] ; 0x44 800534a: 015b lsls r3, r3, #5 800534c: 4413 add r3, r2 800534e: 3312 adds r3, #18 8005350: 2200 movs r2, #0 8005352: 801a strh r2, [r3, #0] pardata.amplif[i].KCOND = 1.00f; 8005354: 4a3a ldr r2, [pc, #232] ; (8005440 ) 8005356: 6c7b ldr r3, [r7, #68] ; 0x44 8005358: 015b lsls r3, r3, #5 800535a: 4413 add r3, r2 800535c: 3314 adds r3, #20 800535e: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8005362: 601a str r2, [r3, #0] pardata.amplif[i].SENS = 10.00f; 8005364: 4a36 ldr r2, [pc, #216] ; (8005440 ) 8005366: 6c7b ldr r3, [r7, #68] ; 0x44 8005368: 015b lsls r3, r3, #5 800536a: 4413 add r3, r2 800536c: 3318 adds r3, #24 800536e: 4a35 ldr r2, [pc, #212] ; (8005444 ) 8005370: 601a str r2, [r3, #0] pardata.amplif[i].ACCEL = 100.00f; 8005372: 4a33 ldr r2, [pc, #204] ; (8005440 ) 8005374: 6c7b ldr r3, [r7, #68] ; 0x44 8005376: 015b lsls r3, r3, #5 8005378: 4413 add r3, r2 800537a: 331c adds r3, #28 800537c: 4a32 ldr r2, [pc, #200] ; (8005448 ) 800537e: 601a str r2, [r3, #0] for(i = 0; i < 16; i++) 8005380: 6c7b ldr r3, [r7, #68] ; 0x44 8005382: 3301 adds r3, #1 8005384: 647b str r3, [r7, #68] ; 0x44 8005386: 6c7b ldr r3, [r7, #68] ; 0x44 8005388: 2b0f cmp r3, #15 800538a: d99e bls.n 80052ca } pardata.OWN = 18; 800538c: 4b2c ldr r3, [pc, #176] ; (8005440 ) 800538e: 2212 movs r2, #18 8005390: f8a3 2200 strh.w r2, [r3, #512] ; 0x200 pardata.BAUD = 7; 8005394: 4b2a ldr r3, [pc, #168] ; (8005440 ) 8005396: 2207 movs r2, #7 8005398: f8a3 2202 strh.w r2, [r3, #514] ; 0x202 pardata.INFB = 0; 800539c: 4b28 ldr r3, [pc, #160] ; (8005440 ) 800539e: 2200 movs r2, #0 80053a0: f8a3 2204 strh.w r2, [r3, #516] ; 0x204 pardata.LANG = RUS; 80053a4: 4b26 ldr r3, [pc, #152] ; (8005440 ) 80053a6: 2200 movs r2, #0 80053a8: f8a3 2206 strh.w r2, [r3, #518] ; 0x206 ///////////////////////////// MX_UART7_Init(); 80053ac: f006 fe72 bl 800c094 EXTI_Config(); 80053b0: f000 f8f6 bl 80055a0 Logo(); 80053b4: f000 f958 bl 8005668 while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 80053b8: e001 b.n 80053be RedrawScreen(); 80053ba: f000 f945 bl 8005648 while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) { 80053be: 2101 movs r1, #1 80053c0: 4822 ldr r0, [pc, #136] ; (800544c ) 80053c2: f009 fb49 bl 800ea58 80053c6: 4603 mov r3, r0 80053c8: 2b01 cmp r3, #1 80053ca: d0f6 beq.n 80053ba } KeysIsReady = true; 80053cc: 4b20 ldr r3, [pc, #128] ; (8005450 ) 80053ce: 2201 movs r2, #1 80053d0: 701a strb r2, [r3, #0] for(k = 0; k < 30; k++) 80053d2: 2300 movs r3, #0 80053d4: 643b str r3, [r7, #64] ; 0x40 80053d6: e00f b.n 80053f8 { keys = kbhit(); 80053d8: f7fb fac4 bl 8000964 80053dc: 63b8 str r0, [r7, #56] ; 0x38 if((keys == KEY_UP) || (keys == (KEY_UP + KEY_OK))) 80053de: 6bbb ldr r3, [r7, #56] ; 0x38 80053e0: 2b02 cmp r3, #2 80053e2: d002 beq.n 80053ea 80053e4: 6bbb ldr r3, [r7, #56] ; 0x38 80053e6: 2b22 cmp r3, #34 ; 0x22 80053e8: d103 bne.n 80053f2 { clbr = true; 80053ea: 4b1a ldr r3, [pc, #104] ; (8005454 ) 80053ec: 2201 movs r2, #1 80053ee: 701a strb r2, [r3, #0] break; 80053f0: e005 b.n 80053fe for(k = 0; k < 30; k++) 80053f2: 6c3b ldr r3, [r7, #64] ; 0x40 80053f4: 3301 adds r3, #1 80053f6: 643b str r3, [r7, #64] ; 0x40 80053f8: 6c3b ldr r3, [r7, #64] ; 0x40 80053fa: 2b1d cmp r3, #29 80053fc: d9ec bls.n 80053d8 } } HAL_Delay(1000); 80053fe: f44f 707a mov.w r0, #1000 ; 0x3e8 8005402: f008 fb5b bl 800dabc AskChannels(); 8005406: f008 fa23 bl 800d850 //menu = MAIN; //todo timerAsk = msec1900; 800540a: 4b13 ldr r3, [pc, #76] ; (8005458 ) 800540c: 22be movs r2, #190 ; 0xbe 800540e: 801a strh r2, [r3, #0] FlagAsk = 0; 8005410: 4b12 ldr r3, [pc, #72] ; (800545c ) 8005412: 2200 movs r2, #0 8005414: 701a strb r2, [r3, #0] while(1) { RedrawScreen(); 8005416: f000 f917 bl 8005648 keyIns(); 800541a: f7fb fb3f bl 8000a9c if(FlagAsk) 800541e: 4b0f ldr r3, [pc, #60] ; (800545c ) 8005420: 781b ldrb r3, [r3, #0] 8005422: b2db uxtb r3, r3 8005424: 2b00 cmp r3, #0 8005426: d0f6 beq.n 8005416 { FlagAsk = 0; 8005428: 4b0c ldr r3, [pc, #48] ; (800545c ) 800542a: 2200 movs r2, #0 800542c: 701a strb r2, [r3, #0] AskPeriodic(); 800542e: f008 faab bl 800d988 RedrawScreen(); 8005432: e7f0 b.n 8005416 8005434: 2006b2d4 .word 0x2006b2d4 8005438: 2006b2d0 .word 0x2006b2d0 800543c: 20020010 .word 0x20020010 8005440: 2006b510 .word 0x2006b510 8005444: 41200000 .word 0x41200000 8005448: 42c80000 .word 0x42c80000 800544c: 40020000 .word 0x40020000 8005450: 20020248 .word 0x20020248 8005454: 2006ba84 .word 0x2006ba84 8005458: 2002021e .word 0x2002021e 800545c: 2006b2ef .word 0x2006b2ef 08005460 : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { 8005460: b580 push {r7, lr} 8005462: b0b8 sub sp, #224 ; 0xe0 8005464: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; 8005466: f107 03ac add.w r3, r7, #172 ; 0xac 800546a: 2234 movs r2, #52 ; 0x34 800546c: 2100 movs r1, #0 800546e: 4618 mov r0, r3 8005470: f00c ff51 bl 8012316 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 8005474: f107 0398 add.w r3, r7, #152 ; 0x98 8005478: 2200 movs r2, #0 800547a: 601a str r2, [r3, #0] 800547c: 605a str r2, [r3, #4] 800547e: 609a str r2, [r3, #8] 8005480: 60da str r2, [r3, #12] 8005482: 611a str r2, [r3, #16] RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; 8005484: f107 0308 add.w r3, r7, #8 8005488: 2290 movs r2, #144 ; 0x90 800548a: 2100 movs r1, #0 800548c: 4618 mov r0, r3 800548e: f00c ff42 bl 8012316 __HAL_RCC_PWR_CLK_ENABLE(); 8005492: 4a3f ldr r2, [pc, #252] ; (8005590 ) 8005494: 4b3e ldr r3, [pc, #248] ; (8005590 ) 8005496: 6c1b ldr r3, [r3, #64] ; 0x40 8005498: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 800549c: 6413 str r3, [r2, #64] ; 0x40 800549e: 4b3c ldr r3, [pc, #240] ; (8005590 ) 80054a0: 6c1b ldr r3, [r3, #64] ; 0x40 80054a2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 80054a6: 607b str r3, [r7, #4] 80054a8: 687b ldr r3, [r7, #4] __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); 80054aa: 4a3a ldr r2, [pc, #232] ; (8005594 ) 80054ac: 4b39 ldr r3, [pc, #228] ; (8005594 ) 80054ae: 681b ldr r3, [r3, #0] 80054b0: f423 4340 bic.w r3, r3, #49152 ; 0xc000 80054b4: f443 4380 orr.w r3, r3, #16384 ; 0x4000 80054b8: 6013 str r3, [r2, #0] 80054ba: 4b36 ldr r3, [pc, #216] ; (8005594 ) 80054bc: 681b ldr r3, [r3, #0] 80054be: f403 4340 and.w r3, r3, #49152 ; 0xc000 80054c2: 603b str r3, [r7, #0] 80054c4: 683b ldr r3, [r7, #0] RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; 80054c6: 2302 movs r3, #2 80054c8: f8c7 30ac str.w r3, [r7, #172] ; 0xac RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS; 80054cc: 2305 movs r3, #5 80054ce: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 RCC_OscInitStruct.HSIState = RCC_HSI_ON; 80054d2: 2301 movs r3, #1 80054d4: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; 80054d8: 2310 movs r3, #16 80054da: f8c7 30bc str.w r3, [r7, #188] ; 0xbc RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 80054de: 2302 movs r3, #2 80054e0: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; 80054e4: 2300 movs r3, #0 80054e6: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 RCC_OscInitStruct.PLL.PLLM = 16; 80054ea: 2310 movs r3, #16 80054ec: f8c7 30cc str.w r3, [r7, #204] ; 0xcc RCC_OscInitStruct.PLL.PLLN = 432; 80054f0: f44f 73d8 mov.w r3, #432 ; 0x1b0 80054f4: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8; 80054f8: 2308 movs r3, #8 80054fa: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 RCC_OscInitStruct.PLL.PLLQ = 9; 80054fe: 2309 movs r3, #9 8005500: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 8005504: f107 03ac add.w r3, r7, #172 ; 0xac 8005508: 4618 mov r0, r3 800550a: f009 febf bl 800f28c 800550e: 4603 mov r3, r0 8005510: 2b00 cmp r3, #0 8005512: d001 beq.n 8005518 { Error_Handler(); 8005514: f000 f840 bl 8005598 } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK 8005518: 230f movs r3, #15 800551a: f8c7 3098 str.w r3, [r7, #152] ; 0x98 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; 800551e: 2302 movs r3, #2 8005520: f8c7 309c str.w r3, [r7, #156] ; 0x9c RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 8005524: 2300 movs r3, #0 8005526: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; 800552a: 2300 movs r3, #0 800552c: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; 8005530: 2300 movs r3, #0 8005532: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) 8005536: f107 0398 add.w r3, r7, #152 ; 0x98 800553a: 2101 movs r1, #1 800553c: 4618 mov r0, r3 800553e: f00a f953 bl 800f7e8 8005542: 4603 mov r3, r0 8005544: 2b00 cmp r3, #0 8005546: d001 beq.n 800554c { Error_Handler(); 8005548: f000 f826 bl 8005598 } PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC |RCC_PERIPHCLK_UART7; 800554c: f241 0308 movw r3, #4104 ; 0x1008 8005550: 60bb str r3, [r7, #8] PeriphClkInitStruct.PLLSAI.PLLSAIN = 192; 8005552: 23c0 movs r3, #192 ; 0xc0 8005554: 61fb str r3, [r7, #28] PeriphClkInitStruct.PLLSAI.PLLSAIR = 4; 8005556: 2304 movs r3, #4 8005558: 627b str r3, [r7, #36] ; 0x24 PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2; 800555a: 2302 movs r3, #2 800555c: 623b str r3, [r7, #32] PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4; 800555e: 2301 movs r3, #1 8005560: 62bb str r3, [r7, #40] ; 0x28 PeriphClkInitStruct.PLLSAIDivQ = 1; 8005562: 2301 movs r3, #1 8005564: 633b str r3, [r7, #48] ; 0x30 PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2; 8005566: 2300 movs r3, #0 8005568: 637b str r3, [r7, #52] ; 0x34 PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; 800556a: f44f 7380 mov.w r3, #256 ; 0x100 800556e: 63bb str r3, [r7, #56] ; 0x38 PeriphClkInitStruct.Uart7ClockSelection = RCC_UART7CLKSOURCE_PCLK1; 8005570: 2300 movs r3, #0 8005572: 667b str r3, [r7, #100] ; 0x64 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 8005574: f107 0308 add.w r3, r7, #8 8005578: 4618 mov r0, r3 800557a: f00a fb0b bl 800fb94 800557e: 4603 mov r3, r0 8005580: 2b00 cmp r3, #0 8005582: d001 beq.n 8005588 { Error_Handler(); 8005584: f000 f808 bl 8005598 PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); }*/ } 8005588: bf00 nop 800558a: 37e0 adds r7, #224 ; 0xe0 800558c: 46bd mov sp, r7 800558e: bd80 pop {r7, pc} 8005590: 40023800 .word 0x40023800 8005594: 40007000 .word 0x40007000 08005598 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { 8005598: b480 push {r7} 800559a: af00 add r7, sp, #0 \details Disables IRQ interrupts by setting the I-bit in the CPSR. Can only be executed in Privileged modes. */ __STATIC_FORCEINLINE void __disable_irq(void) { __ASM volatile ("cpsid i" : : : "memory"); 800559c: b672 cpsid i /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) 800559e: e7fe b.n 800559e 080055a0 : void EXTI_Config(void) { 80055a0: b580 push {r7, lr} 80055a2: b086 sub sp, #24 80055a4: af00 add r7, sp, #0 GPIO_InitTypeDef EXTILineStruct; __HAL_RCC_SYSCFG_CLK_ENABLE(); 80055a6: 4a12 ldr r2, [pc, #72] ; (80055f0 ) 80055a8: 4b11 ldr r3, [pc, #68] ; (80055f0 ) 80055aa: 6c5b ldr r3, [r3, #68] ; 0x44 80055ac: f443 4380 orr.w r3, r3, #16384 ; 0x4000 80055b0: 6453 str r3, [r2, #68] ; 0x44 80055b2: 4b0f ldr r3, [pc, #60] ; (80055f0 ) 80055b4: 6c5b ldr r3, [r3, #68] ; 0x44 80055b6: f403 4380 and.w r3, r3, #16384 ; 0x4000 80055ba: 603b str r3, [r7, #0] 80055bc: 683b ldr r3, [r7, #0] EXTILineStruct.Pin = GPIO_PIN_2; 80055be: 2304 movs r3, #4 80055c0: 607b str r3, [r7, #4] EXTILineStruct.Mode = GPIO_MODE_IT_RISING; 80055c2: f44f 1388 mov.w r3, #1114112 ; 0x110000 80055c6: 60bb str r3, [r7, #8] EXTILineStruct.Pull = GPIO_NOPULL; 80055c8: 2300 movs r3, #0 80055ca: 60fb str r3, [r7, #12] HAL_GPIO_Init(GPIOC, &EXTILineStruct); 80055cc: 1d3b adds r3, r7, #4 80055ce: 4619 mov r1, r3 80055d0: 4808 ldr r0, [pc, #32] ; (80055f4 ) 80055d2: f009 f897 bl 800e704 HAL_NVIC_SetPriority(EXTI2_IRQn, 12, 0); 80055d6: 2200 movs r2, #0 80055d8: 210c movs r1, #12 80055da: 2008 movs r0, #8 80055dc: f008 fb8b bl 800dcf6 HAL_NVIC_EnableIRQ(EXTI2_IRQn); 80055e0: 2008 movs r0, #8 80055e2: f008 fba4 bl 800dd2e } 80055e6: bf00 nop 80055e8: 3718 adds r7, #24 80055ea: 46bd mov sp, r7 80055ec: bd80 pop {r7, pc} 80055ee: bf00 nop 80055f0: 40023800 .word 0x40023800 80055f4: 40020800 .word 0x40020800 080055f8 : void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { 80055f8: b580 push {r7, lr} 80055fa: b082 sub sp, #8 80055fc: af00 add r7, sp, #0 80055fe: 4603 mov r3, r0 8005600: 80fb strh r3, [r7, #6] if(GPIO_Pin == GPIO_PIN_2) 8005602: 88fb ldrh r3, [r7, #6] 8005604: 2b04 cmp r3, #4 8005606: d114 bne.n 8005632 { __HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2); 8005608: 4b0c ldr r3, [pc, #48] ; (800563c ) 800560a: 2204 movs r2, #4 800560c: 615a str r2, [r3, #20] if((RefreshScreen == false) && (screen == true)) 800560e: 4b0c ldr r3, [pc, #48] ; (8005640 ) 8005610: 781b ldrb r3, [r3, #0] 8005612: b2db uxtb r3, r3 8005614: f083 0301 eor.w r3, r3, #1 8005618: b2db uxtb r3, r3 800561a: 2b00 cmp r3, #0 800561c: d009 beq.n 8005632 800561e: 4b09 ldr r3, [pc, #36] ; (8005644 ) 8005620: 781b ldrb r3, [r3, #0] 8005622: b2db uxtb r3, r3 8005624: 2b00 cmp r3, #0 8005626: d004 beq.n 8005632 { screen = false; 8005628: 4b06 ldr r3, [pc, #24] ; (8005644 ) 800562a: 2200 movs r2, #0 800562c: 701a strb r2, [r3, #0] Display(); 800562e: f000 f8b9 bl 80057a4 } //ReadChannel(Ch1); } } 8005632: bf00 nop 8005634: 3708 adds r7, #8 8005636: 46bd mov sp, r7 8005638: bd80 pop {r7, pc} 800563a: bf00 nop 800563c: 40013c00 .word 0x40013c00 8005640: 2006b2cc .word 0x2006b2cc 8005644: 2002002c .word 0x2002002c 08005648 : void RedrawScreen(void) { 8005648: b480 push {r7} 800564a: af00 add r7, sp, #0 __HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_2); 800564c: 4a05 ldr r2, [pc, #20] ; (8005664 ) 800564e: 4b05 ldr r3, [pc, #20] ; (8005664 ) 8005650: 691b ldr r3, [r3, #16] 8005652: f043 0304 orr.w r3, r3, #4 8005656: 6113 str r3, [r2, #16] { screen = false; Display(); }*/ } 8005658: bf00 nop 800565a: 46bd mov sp, r7 800565c: f85d 7b04 ldr.w r7, [sp], #4 8005660: 4770 bx lr 8005662: bf00 nop 8005664: 40013c00 .word 0x40013c00 08005668 : void Logo(void) { 8005668: b580 push {r7, lr} 800566a: b082 sub sp, #8 800566c: af00 add r7, sp, #0 uint32_t i; uint32_t color = LCD_COLOR_BLACK; //0xFF212829; 800566e: f04f 437f mov.w r3, #4278190080 ; 0xff000000 8005672: 603b str r3, [r7, #0] #ifdef DRAW_LOGO BSP_LCD_DisplayOn(); 8005674: f7fe fdc2 bl 80041fc HAL_NVIC_DisableIRQ(EXTI2_IRQn); 8005678: 2008 movs r0, #8 800567a: f008 fb66 bl 800dd4a //********************************************************* BSP_LCD_SetFont(&Font12); 800567e: 4843 ldr r0, [pc, #268] ; (800578c ) 8005680: f7fe ff76 bl 8004570 for(i = 0; i < 3; i++) 8005684: 2300 movs r3, #0 8005686: 607b str r3, [r7, #4] 8005688: e032 b.n 80056f0 { BSP_LCD_Clear(color); 800568a: 6838 ldr r0, [r7, #0] 800568c: f7fe ff8e bl 80045ac DrawImage(&bmLOGO_NEW, 0, 54); 8005690: 2236 movs r2, #54 ; 0x36 8005692: 2100 movs r1, #0 8005694: 483e ldr r0, [pc, #248] ; (8005790 ) 8005696: f7ff fd0f bl 80050b8 RefreshScreen = true; 800569a: 4b3e ldr r3, [pc, #248] ; (8005794 ) 800569c: 2201 movs r2, #1 800569e: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 80056a0: 2100 movs r1, #0 80056a2: 483d ldr r0, [pc, #244] ; (8005798 ) 80056a4: f009 fbe8 bl 800ee78 while(RefreshScreen); 80056a8: bf00 nop 80056aa: 4b3a ldr r3, [pc, #232] ; (8005794 ) 80056ac: 781b ldrb r3, [r3, #0] 80056ae: b2db uxtb r3, r3 80056b0: 2b00 cmp r3, #0 80056b2: d1fa bne.n 80056aa HAL_Delay(50); 80056b4: 2032 movs r0, #50 ; 0x32 80056b6: f008 fa01 bl 800dabc BSP_LCD_Clear(color); 80056ba: 6838 ldr r0, [r7, #0] 80056bc: f7fe ff76 bl 80045ac DrawImage(&bmLOGO_NEW, 0, 54); 80056c0: 2236 movs r2, #54 ; 0x36 80056c2: 2100 movs r1, #0 80056c4: 4832 ldr r0, [pc, #200] ; (8005790 ) 80056c6: f7ff fcf7 bl 80050b8 RefreshScreen = true; 80056ca: 4b32 ldr r3, [pc, #200] ; (8005794 ) 80056cc: 2201 movs r2, #1 80056ce: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 80056d0: 2100 movs r1, #0 80056d2: 4831 ldr r0, [pc, #196] ; (8005798 ) 80056d4: f009 fbd0 bl 800ee78 while(RefreshScreen); 80056d8: bf00 nop 80056da: 4b2e ldr r3, [pc, #184] ; (8005794 ) 80056dc: 781b ldrb r3, [r3, #0] 80056de: b2db uxtb r3, r3 80056e0: 2b00 cmp r3, #0 80056e2: d1fa bne.n 80056da HAL_Delay(50); 80056e4: 2032 movs r0, #50 ; 0x32 80056e6: f008 f9e9 bl 800dabc for(i = 0; i < 3; i++) 80056ea: 687b ldr r3, [r7, #4] 80056ec: 3301 adds r3, #1 80056ee: 607b str r3, [r7, #4] 80056f0: 687b ldr r3, [r7, #4] 80056f2: 2b02 cmp r3, #2 80056f4: d9c9 bls.n 800568a } HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON 80056f6: 2200 movs r2, #0 80056f8: f44f 7180 mov.w r1, #256 ; 0x100 80056fc: 4827 ldr r0, [pc, #156] ; (800579c ) 80056fe: f009 f9c3 bl 800ea88 //********************************************************* BSP_LCD_Clear(color); 8005702: 6838 ldr r0, [r7, #0] 8005704: f7fe ff52 bl 80045ac DrawImage(&bmLOGO_NEW, 0, 54); 8005708: 2236 movs r2, #54 ; 0x36 800570a: 2100 movs r1, #0 800570c: 4820 ldr r0, [pc, #128] ; (8005790 ) 800570e: f7ff fcd3 bl 80050b8 RefreshScreen = true; 8005712: 4b20 ldr r3, [pc, #128] ; (8005794 ) 8005714: 2201 movs r2, #1 8005716: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005718: 2100 movs r1, #0 800571a: 481f ldr r0, [pc, #124] ; (8005798 ) 800571c: f009 fbac bl 800ee78 while(RefreshScreen); 8005720: bf00 nop 8005722: 4b1c ldr r3, [pc, #112] ; (8005794 ) 8005724: 781b ldrb r3, [r3, #0] 8005726: b2db uxtb r3, r3 8005728: 2b00 cmp r3, #0 800572a: d1fa bne.n 8005722 HAL_Delay(50); 800572c: 2032 movs r0, #50 ; 0x32 800572e: f008 f9c5 bl 800dabc BSP_LCD_Clear(color); 8005732: 6838 ldr r0, [r7, #0] 8005734: f7fe ff3a bl 80045ac DrawImage(&bmLOGO_NEW, 0, 54); 8005738: 2236 movs r2, #54 ; 0x36 800573a: 2100 movs r1, #0 800573c: 4814 ldr r0, [pc, #80] ; (8005790 ) 800573e: f7ff fcbb bl 80050b8 RefreshScreen = true; 8005742: 4b14 ldr r3, [pc, #80] ; (8005794 ) 8005744: 2201 movs r2, #1 8005746: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 8005748: 2100 movs r1, #0 800574a: 4813 ldr r0, [pc, #76] ; (8005798 ) 800574c: f009 fb94 bl 800ee78 while(RefreshScreen); 8005750: bf00 nop 8005752: 4b10 ldr r3, [pc, #64] ; (8005794 ) 8005754: 781b ldrb r3, [r3, #0] 8005756: b2db uxtb r3, r3 8005758: 2b00 cmp r3, #0 800575a: d1fa bne.n 8005752 HAL_Delay(50); 800575c: 2032 movs r0, #50 ; 0x32 800575e: f008 f9ad bl 800dabc HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON 8005762: 2200 movs r2, #0 8005764: f44f 7180 mov.w r1, #256 ; 0x100 8005768: 480c ldr r0, [pc, #48] ; (800579c ) 800576a: f009 f98d bl 800ea88 HAL_Delay(500); 800576e: f44f 70fa mov.w r0, #500 ; 0x1f4 8005772: f008 f9a3 bl 800dabc menu = LOGO; 8005776: 4b0a ldr r3, [pc, #40] ; (80057a0 ) 8005778: 221e movs r2, #30 800577a: 701a strb r2, [r3, #0] HAL_NVIC_EnableIRQ(EXTI2_IRQn); 800577c: 2008 movs r0, #8 800577e: f008 fad6 bl 800dd2e #endif } 8005782: bf00 nop 8005784: 3708 adds r7, #8 8005786: 46bd mov sp, r7 8005788: bd80 pop {r7, pc} 800578a: bf00 nop 800578c: 20020000 .word 0x20020000 8005790: 0802a444 .word 0x0802a444 8005794: 2006b2cc .word 0x2006b2cc 8005798: 2006b9dc .word 0x2006b9dc 800579c: 40020000 .word 0x40020000 80057a0: 20020245 .word 0x20020245 080057a4 : void Display(void) { 80057a4: b580 push {r7, lr} 80057a6: f5ad 6d80 sub.w sp, sp, #1024 ; 0x400 80057aa: af00 add r7, sp, #0 char *p8; TimeDate_TypeDef FatTime; float32_t f, fs; uint32_t cl1, cl2; static uint32_t blink = 0; bool bl = false; 80057ac: 2300 movs r3, #0 80057ae: f887 33ff strb.w r3, [r7, #1023] ; 0x3ff static uint32_t blk = 0; static uint8_t tt = 0; static uint32_t tme = 0; bool bll = false; 80057b2: 2300 movs r3, #0 80057b4: f887 33fe strb.w r3, [r7, #1022] ; 0x3fe uint32_t old_DateTime; uint32_t lx, ly; uint32_t Year, Month, Day, Hour, Min, Sec; blk++; 80057b8: 4bbd ldr r3, [pc, #756] ; (8005ab0 ) 80057ba: 681b ldr r3, [r3, #0] 80057bc: 3301 adds r3, #1 80057be: 4abc ldr r2, [pc, #752] ; (8005ab0 ) 80057c0: 6013 str r3, [r2, #0] if(blk > 2) 80057c2: 4bbb ldr r3, [pc, #748] ; (8005ab0 ) 80057c4: 681b ldr r3, [r3, #0] 80057c6: 2b02 cmp r3, #2 80057c8: d905 bls.n 80057d6 { blk = 0; 80057ca: 4bb9 ldr r3, [pc, #740] ; (8005ab0 ) 80057cc: 2200 movs r2, #0 80057ce: 601a str r2, [r3, #0] bll = true; 80057d0: 2301 movs r3, #1 80057d2: f887 33fe strb.w r3, [r7, #1022] ; 0x3fe } blink++; 80057d6: 4bb7 ldr r3, [pc, #732] ; (8005ab4 ) 80057d8: 681b ldr r3, [r3, #0] 80057da: 3301 adds r3, #1 80057dc: 4ab5 ldr r2, [pc, #724] ; (8005ab4 ) 80057de: 6013 str r3, [r2, #0] if(blink > 8) 80057e0: 4bb4 ldr r3, [pc, #720] ; (8005ab4 ) 80057e2: 681b ldr r3, [r3, #0] 80057e4: 2b08 cmp r3, #8 80057e6: d905 bls.n 80057f4 { blink = 0; 80057e8: 4bb2 ldr r3, [pc, #712] ; (8005ab4 ) 80057ea: 2200 movs r2, #0 80057ec: 601a str r2, [r3, #0] bl = true; 80057ee: 2301 movs r3, #1 80057f0: f887 33ff strb.w r3, [r7, #1023] ; 0x3ff } Redrawing = true; 80057f4: 4bb0 ldr r3, [pc, #704] ; (8005ab8 ) 80057f6: 2201 movs r2, #1 80057f8: 701a strb r2, [r3, #0] BSP_LCD_Clear(LCD_COLOR_BLACK); 80057fa: f04f 407f mov.w r0, #4278190080 ; 0xff000000 80057fe: f7fe fed5 bl 80045ac //*************************************************** ОТРИСОВКА СТРОКИ СТАТУСА (ВЕРХ ДИСПЛЕЯ С ЧАСАМИ И БАТАРЕЕЙ) **************************************************************// //==========================================================================================================================// //--------------------------------------------------------------------------------------------------------------------------// //==========================================================================================================================// switch(menu) 8005802: 4bae ldr r3, [pc, #696] ; (8005abc ) 8005804: 781b ldrb r3, [r3, #0] 8005806: b2db uxtb r3, r3 8005808: 2b4e cmp r3, #78 ; 0x4e 800580a: f200 8682 bhi.w 8006512 800580e: a201 add r2, pc, #4 ; (adr r2, 8005814 ) 8005810: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8005814: 08005c3d .word 0x08005c3d 8005818: 08005edb .word 0x08005edb 800581c: 08005feb .word 0x08005feb 8005820: 0800601b .word 0x0800601b 8005824: 0800604b .word 0x0800604b 8005828: 0800607b .word 0x0800607b 800582c: 080060ab .word 0x080060ab 8005830: 08006139 .word 0x08006139 8005834: 08006169 .word 0x08006169 8005838: 08006199 .word 0x08006199 800583c: 080061c9 .word 0x080061c9 8005840: 080061f9 .word 0x080061f9 8005844: 08006229 .word 0x08006229 8005848: 08006259 .word 0x08006259 800584c: 08006289 .word 0x08006289 8005850: 080062b9 .word 0x080062b9 8005854: 080062e9 .word 0x080062e9 8005858: 08006319 .word 0x08006319 800585c: 08006349 .word 0x08006349 8005860: 08006379 .word 0x08006379 8005864: 080063a9 .word 0x080063a9 8005868: 080063d9 .word 0x080063d9 800586c: 08006409 .word 0x08006409 8005870: 08006439 .word 0x08006439 8005874: 08006469 .word 0x08006469 8005878: 08006513 .word 0x08006513 800587c: 08006513 .word 0x08006513 8005880: 08006513 .word 0x08006513 8005884: 08006513 .word 0x08006513 8005888: 08006513 .word 0x08006513 800588c: 08005951 .word 0x08005951 8005890: 08006513 .word 0x08006513 8005894: 08006513 .word 0x08006513 8005898: 08006513 .word 0x08006513 800589c: 08006513 .word 0x08006513 80058a0: 08006513 .word 0x08006513 80058a4: 08006513 .word 0x08006513 80058a8: 08006513 .word 0x08006513 80058ac: 08006513 .word 0x08006513 80058b0: 08006513 .word 0x08006513 80058b4: 08006513 .word 0x08006513 80058b8: 08006513 .word 0x08006513 80058bc: 08006513 .word 0x08006513 80058c0: 08006513 .word 0x08006513 80058c4: 08006513 .word 0x08006513 80058c8: 08006513 .word 0x08006513 80058cc: 08006513 .word 0x08006513 80058d0: 08006513 .word 0x08006513 80058d4: 08006513 .word 0x08006513 80058d8: 08006513 .word 0x08006513 80058dc: 08006513 .word 0x08006513 80058e0: 08006513 .word 0x08006513 80058e4: 08006513 .word 0x08006513 80058e8: 08006513 .word 0x08006513 80058ec: 08006513 .word 0x08006513 80058f0: 08006513 .word 0x08006513 80058f4: 08006513 .word 0x08006513 80058f8: 08006513 .word 0x08006513 80058fc: 08006513 .word 0x08006513 8005900: 08006513 .word 0x08006513 8005904: 08006513 .word 0x08006513 8005908: 08006513 .word 0x08006513 800590c: 08006513 .word 0x08006513 8005910: 08006513 .word 0x08006513 8005914: 08006513 .word 0x08006513 8005918: 08006513 .word 0x08006513 800591c: 08006513 .word 0x08006513 8005920: 08006513 .word 0x08006513 8005924: 08006513 .word 0x08006513 8005928: 08006513 .word 0x08006513 800592c: 08006513 .word 0x08006513 8005930: 08006513 .word 0x08006513 8005934: 08006513 .word 0x08006513 8005938: 08006513 .word 0x08006513 800593c: 08006513 .word 0x08006513 8005940: 08006513 .word 0x08006513 8005944: 08006513 .word 0x08006513 8005948: 08006513 .word 0x08006513 800594c: 08006513 .word 0x08006513 { case LOGO: //********************************************************* DrawImage(&bmLOGO_NEW, 0, 54); 8005950: 2236 movs r2, #54 ; 0x36 8005952: 2100 movs r1, #0 8005954: 485a ldr r0, [pc, #360] ; (8005ac0 ) 8005956: f7ff fbaf bl 80050b8 timesLOGO++; 800595a: 4b5a ldr r3, [pc, #360] ; (8005ac4 ) 800595c: 681b ldr r3, [r3, #0] 800595e: 3301 adds r3, #1 8005960: 4a58 ldr r2, [pc, #352] ; (8005ac4 ) 8005962: 6013 str r3, [r2, #0] if(timesLOGO >= 2) 8005964: 4b57 ldr r3, [pc, #348] ; (8005ac4 ) 8005966: 681b ldr r3, [r3, #0] 8005968: 2b01 cmp r3, #1 800596a: f240 8595 bls.w 8006498 { LCD_SetColors(0xFFFFFFFF, 0); 800596e: 2100 movs r1, #0 8005970: f04f 30ff mov.w r0, #4294967295 8005974: f7fe fdc0 bl 80044f8 BSP_LCD_SetFont(&Font12); 8005978: 4853 ldr r0, [pc, #332] ; (8005ac8 ) 800597a: f7fe fdf9 bl 8004570 #ifdef A142 if(pardata.LANG == RUS) 800597e: 4b53 ldr r3, [pc, #332] ; (8005acc ) 8005980: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8005984: b29b uxth r3, r3 8005986: 2b00 cmp r3, #0 8005988: d10c bne.n 80059a4 { BSP_LCD_DisplayStringAt(165, 195, "А142", CENTER_MODE); 800598a: 2301 movs r3, #1 800598c: 4a50 ldr r2, [pc, #320] ; (8005ad0 ) 800598e: 21c3 movs r1, #195 ; 0xc3 8005990: 20a5 movs r0, #165 ; 0xa5 8005992: f7fe fe77 bl 8004684 BSP_LCD_DisplayStringAt(165, 206, "Усилитель заряда и напряжения", CENTER_MODE); 8005996: 2301 movs r3, #1 8005998: 4a4e ldr r2, [pc, #312] ; (8005ad4 ) 800599a: 21ce movs r1, #206 ; 0xce 800599c: 20a5 movs r0, #165 ; 0xa5 800599e: f7fe fe71 bl 8004684 80059a2: e005 b.n 80059b0 } else BSP_LCD_DisplayStringAt(165, 206, "Amplifier A142", CENTER_MODE); 80059a4: 2301 movs r3, #1 80059a6: 4a4c ldr r2, [pc, #304] ; (8005ad8 ) 80059a8: 21ce movs r1, #206 ; 0xce 80059aa: 20a5 movs r0, #165 ; 0xa5 80059ac: f7fe fe6a bl 8004684 else BSP_LCD_DisplayStringAt(165, 206, "Amplifier A148", CENTER_MODE); #endif #endif BSP_LCD_DisplayStringAt(160, 224, (char *) _VERSION, CENTER_MODE); 80059b0: 2301 movs r3, #1 80059b2: 4a4a ldr r2, [pc, #296] ; (8005adc ) 80059b4: 21e0 movs r1, #224 ; 0xe0 80059b6: 20a0 movs r0, #160 ; 0xa0 80059b8: f7fe fe64 bl 8004684 BSP_LCD_DisplayStringAt(160, 4, (char *) _SERIAL_DRAW, CENTER_MODE); 80059bc: 2301 movs r3, #1 80059be: 4a48 ldr r2, [pc, #288] ; (8005ae0 ) 80059c0: 2104 movs r1, #4 80059c2: 20a0 movs r0, #160 ; 0xa0 80059c4: f7fe fe5e bl 8004684 memset(str, 0, sizeof(str)); 80059c8: f507 7339 add.w r3, r7, #740 ; 0x2e4 80059cc: 223c movs r2, #60 ; 0x3c 80059ce: 2100 movs r1, #0 80059d0: 4618 mov r0, r3 80059d2: f00c fca0 bl 8012316 l = 0; 80059d6: 2300 movs r3, #0 80059d8: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4 if(ip_assigned) 80059dc: 4b41 ldr r3, [pc, #260] ; (8005ae4 ) 80059de: 781b ldrb r3, [r3, #0] 80059e0: b2db uxtb r3, r3 80059e2: 2b00 cmp r3, #0 80059e4: f000 80f9 beq.w 8005bda { for(j = 0; j < 4; j++) 80059e8: 2300 movs r3, #0 80059ea: f8c7 33ec str.w r3, [r7, #1004] ; 0x3ec 80059ee: e0d9 b.n 8005ba4 { k = ip[j]; 80059f0: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec 80059f4: 4a3c ldr r2, [pc, #240] ; (8005ae8 ) 80059f6: 5cd3 ldrb r3, [r2, r3] 80059f8: f8c7 33e8 str.w r3, [r7, #1000] ; 0x3e8 if(k < 10) 80059fc: f8d7 33e8 ldr.w r3, [r7, #1000] ; 0x3e8 8005a00: 2b09 cmp r3, #9 8005a02: d81b bhi.n 8005a3c { str[l++] = (uint8_t) (k + 48); 8005a04: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4 8005a08: 1c5a adds r2, r3, #1 8005a0a: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4 8005a0e: f8d7 23e8 ldr.w r2, [r7, #1000] ; 0x3e8 8005a12: b2d2 uxtb r2, r2 8005a14: 3230 adds r2, #48 ; 0x30 8005a16: b2d1 uxtb r1, r2 8005a18: f507 7239 add.w r2, r7, #740 ; 0x2e4 8005a1c: 54d1 strb r1, [r2, r3] if(j < 3) { 8005a1e: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec 8005a22: 2b02 cmp r3, #2 8005a24: f200 80b9 bhi.w 8005b9a str[l++] = '.'; 8005a28: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4 8005a2c: 1c5a adds r2, r3, #1 8005a2e: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4 8005a32: f507 7239 add.w r2, r7, #740 ; 0x2e4 8005a36: 212e movs r1, #46 ; 0x2e 8005a38: 54d1 strb r1, [r2, r3] 8005a3a: e0ae b.n 8005b9a } } else if(k < 100) 8005a3c: f8d7 33e8 ldr.w r3, [r7, #1000] ; 0x3e8 8005a40: 2b63 cmp r3, #99 ; 0x63 8005a42: d855 bhi.n 8005af0 { str[l++] = (uint8_t) ((k / 10) + 48); 8005a44: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4 8005a48: 1c5a adds r2, r3, #1 8005a4a: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4 8005a4e: f8d7 23e8 ldr.w r2, [r7, #1000] ; 0x3e8 8005a52: 4926 ldr r1, [pc, #152] ; (8005aec ) 8005a54: fba1 1202 umull r1, r2, r1, r2 8005a58: 08d2 lsrs r2, r2, #3 8005a5a: b2d2 uxtb r2, r2 8005a5c: 3230 adds r2, #48 ; 0x30 8005a5e: b2d1 uxtb r1, r2 8005a60: f507 7239 add.w r2, r7, #740 ; 0x2e4 8005a64: 54d1 strb r1, [r2, r3] str[l++] = (uint8_t) ((k % 10) + 48); 8005a66: f8d7 13e4 ldr.w r1, [r7, #996] ; 0x3e4 8005a6a: 1c4b adds r3, r1, #1 8005a6c: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4 8005a70: f8d7 03e8 ldr.w r0, [r7, #1000] ; 0x3e8 8005a74: 4b1d ldr r3, [pc, #116] ; (8005aec ) 8005a76: fba3 2300 umull r2, r3, r3, r0 8005a7a: 08da lsrs r2, r3, #3 8005a7c: 4613 mov r3, r2 8005a7e: 009b lsls r3, r3, #2 8005a80: 4413 add r3, r2 8005a82: 005b lsls r3, r3, #1 8005a84: 1ac2 subs r2, r0, r3 8005a86: b2d3 uxtb r3, r2 8005a88: 3330 adds r3, #48 ; 0x30 8005a8a: b2da uxtb r2, r3 8005a8c: f507 7339 add.w r3, r7, #740 ; 0x2e4 8005a90: 545a strb r2, [r3, r1] if(j < 3) { 8005a92: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec 8005a96: 2b02 cmp r3, #2 8005a98: d87f bhi.n 8005b9a str[l++] = '.'; 8005a9a: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4 8005a9e: 1c5a adds r2, r3, #1 8005aa0: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4 8005aa4: f507 7239 add.w r2, r7, #740 ; 0x2e4 8005aa8: 212e movs r1, #46 ; 0x2e 8005aaa: 54d1 strb r1, [r2, r3] 8005aac: e075 b.n 8005b9a 8005aae: bf00 nop 8005ab0: 2006b2e0 .word 0x2006b2e0 8005ab4: 2006b2e4 .word 0x2006b2e4 8005ab8: 2006b2dc .word 0x2006b2dc 8005abc: 20020245 .word 0x20020245 8005ac0: 0802a444 .word 0x0802a444 8005ac4: 2006b2d8 .word 0x2006b2d8 8005ac8: 20020000 .word 0x20020000 8005acc: 2006b510 .word 0x2006b510 8005ad0: 080128e8 .word 0x080128e8 8005ad4: 080128f0 .word 0x080128f0 8005ad8: 08012910 .word 0x08012910 8005adc: 08015524 .word 0x08015524 8005ae0: 2002001c .word 0x2002001c 8005ae4: 2006b2fc .word 0x2006b2fc 8005ae8: 2006b2f4 .word 0x2006b2f4 8005aec: cccccccd .word 0xcccccccd } } else { str[l++] = (uint8_t) ((k / 100) + 48); 8005af0: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4 8005af4: 1c5a adds r2, r3, #1 8005af6: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4 8005afa: f8d7 23e8 ldr.w r2, [r7, #1000] ; 0x3e8 8005afe: 4999 ldr r1, [pc, #612] ; (8005d64 ) 8005b00: fba1 1202 umull r1, r2, r1, r2 8005b04: 0952 lsrs r2, r2, #5 8005b06: b2d2 uxtb r2, r2 8005b08: 3230 adds r2, #48 ; 0x30 8005b0a: b2d1 uxtb r1, r2 8005b0c: f507 7239 add.w r2, r7, #740 ; 0x2e4 8005b10: 54d1 strb r1, [r2, r3] str[l++] = (uint8_t) ((k % 100 / 10) + 48); 8005b12: f8d7 23e4 ldr.w r2, [r7, #996] ; 0x3e4 8005b16: 1c53 adds r3, r2, #1 8005b18: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4 8005b1c: f8d7 13e8 ldr.w r1, [r7, #1000] ; 0x3e8 8005b20: 4b90 ldr r3, [pc, #576] ; (8005d64 ) 8005b22: fba3 0301 umull r0, r3, r3, r1 8005b26: 095b lsrs r3, r3, #5 8005b28: 2064 movs r0, #100 ; 0x64 8005b2a: fb00 f303 mul.w r3, r0, r3 8005b2e: 1acb subs r3, r1, r3 8005b30: 498d ldr r1, [pc, #564] ; (8005d68 ) 8005b32: fba1 1303 umull r1, r3, r1, r3 8005b36: 08db lsrs r3, r3, #3 8005b38: b2db uxtb r3, r3 8005b3a: 3330 adds r3, #48 ; 0x30 8005b3c: b2d9 uxtb r1, r3 8005b3e: f507 7339 add.w r3, r7, #740 ; 0x2e4 8005b42: 5499 strb r1, [r3, r2] str[l++] = (uint8_t) ((k % 100 % 10) + 48); 8005b44: f8d7 03e4 ldr.w r0, [r7, #996] ; 0x3e4 8005b48: 1c43 adds r3, r0, #1 8005b4a: f8c7 33e4 str.w r3, [r7, #996] ; 0x3e4 8005b4e: f8d7 33e8 ldr.w r3, [r7, #1000] ; 0x3e8 8005b52: 4a84 ldr r2, [pc, #528] ; (8005d64 ) 8005b54: fba2 1203 umull r1, r2, r2, r3 8005b58: 0952 lsrs r2, r2, #5 8005b5a: 2164 movs r1, #100 ; 0x64 8005b5c: fb01 f202 mul.w r2, r1, r2 8005b60: 1a9a subs r2, r3, r2 8005b62: 4b81 ldr r3, [pc, #516] ; (8005d68 ) 8005b64: fba3 1302 umull r1, r3, r3, r2 8005b68: 08d9 lsrs r1, r3, #3 8005b6a: 460b mov r3, r1 8005b6c: 009b lsls r3, r3, #2 8005b6e: 440b add r3, r1 8005b70: 005b lsls r3, r3, #1 8005b72: 1ad1 subs r1, r2, r3 8005b74: b2cb uxtb r3, r1 8005b76: 3330 adds r3, #48 ; 0x30 8005b78: b2da uxtb r2, r3 8005b7a: f507 7339 add.w r3, r7, #740 ; 0x2e4 8005b7e: 541a strb r2, [r3, r0] if(j < 3) { 8005b80: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec 8005b84: 2b02 cmp r3, #2 8005b86: d808 bhi.n 8005b9a str[l++] = '.'; 8005b88: f8d7 33e4 ldr.w r3, [r7, #996] ; 0x3e4 8005b8c: 1c5a adds r2, r3, #1 8005b8e: f8c7 23e4 str.w r2, [r7, #996] ; 0x3e4 8005b92: f507 7239 add.w r2, r7, #740 ; 0x2e4 8005b96: 212e movs r1, #46 ; 0x2e 8005b98: 54d1 strb r1, [r2, r3] for(j = 0; j < 4; j++) 8005b9a: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec 8005b9e: 3301 adds r3, #1 8005ba0: f8c7 33ec str.w r3, [r7, #1004] ; 0x3ec 8005ba4: f8d7 33ec ldr.w r3, [r7, #1004] ; 0x3ec 8005ba8: 2b03 cmp r3, #3 8005baa: f67f af21 bls.w 80059f0 } } } strcat(str, ":7000"); 8005bae: f507 7339 add.w r3, r7, #740 ; 0x2e4 8005bb2: 4618 mov r0, r3 8005bb4: f7fa fb40 bl 8000238 8005bb8: 4603 mov r3, r0 8005bba: 461a mov r2, r3 8005bbc: f507 7339 add.w r3, r7, #740 ; 0x2e4 8005bc0: 4413 add r3, r2 8005bc2: 4a6a ldr r2, [pc, #424] ; (8005d6c ) 8005bc4: 6810 ldr r0, [r2, #0] 8005bc6: 6018 str r0, [r3, #0] 8005bc8: 8892 ldrh r2, [r2, #4] 8005bca: 809a strh r2, [r3, #4] BSP_LCD_DisplayStringAt(160, 24, str, CENTER_MODE); 8005bcc: f507 7239 add.w r2, r7, #740 ; 0x2e4 8005bd0: 2301 movs r3, #1 8005bd2: 2118 movs r1, #24 8005bd4: 20a0 movs r0, #160 ; 0xa0 8005bd6: f7fe fd55 bl 8004684 /*if(CORRECTION == false) { BSP_LCD_DisplayStringAt(0, 4, ".", LEFT_MODE); }*/ DrawSpinner(300, 20); 8005bda: 2114 movs r1, #20 8005bdc: f44f 7096 mov.w r0, #300 ; 0x12c 8005be0: f000 ffe2 bl 8006ba8 if(clbr) 8005be4: 4b62 ldr r3, [pc, #392] ; (8005d70 ) 8005be6: 781b ldrb r3, [r3, #0] 8005be8: b2db uxtb r3, r3 8005bea: 2b00 cmp r3, #0 8005bec: d00b beq.n 8005c06 { LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8005bee: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005bf2: f04f 30ff mov.w r0, #4294967295 8005bf6: f7fe fc7f bl 80044f8 BSP_LCD_DisplayStringAt(160, 18, "ЗАПУСК КАЛИБРОВКИ", CENTER_MODE); 8005bfa: 2301 movs r3, #1 8005bfc: 4a5d ldr r2, [pc, #372] ; (8005d74 ) 8005bfe: 2112 movs r1, #18 8005c00: 20a0 movs r0, #160 ; 0xa0 8005c02: f7fe fd3f bl 8004684 } if(ASK_COMPLETE) 8005c06: 4b5c ldr r3, [pc, #368] ; (8005d78 ) 8005c08: 781b ldrb r3, [r3, #0] 8005c0a: b2db uxtb r3, r3 8005c0c: 2b00 cmp r3, #0 8005c0e: f000 8443 beq.w 8006498 { timesLOGO = 0; 8005c12: 4b5a ldr r3, [pc, #360] ; (8005d7c ) 8005c14: 2200 movs r2, #0 8005c16: 601a str r2, [r3, #0] if(clbr) 8005c18: 4b55 ldr r3, [pc, #340] ; (8005d70 ) 8005c1a: 781b ldrb r3, [r3, #0] 8005c1c: b2db uxtb r3, r3 8005c1e: 2b00 cmp r3, #0 8005c20: d007 beq.n 8005c32 { menu = CALIBR_00; 8005c22: 4b57 ldr r3, [pc, #348] ; (8005d80 ) 8005c24: 2201 movs r2, #1 8005c26: 701a strb r2, [r3, #0] menupos = Ch1; 8005c28: 4b56 ldr r3, [pc, #344] ; (8005d84 ) 8005c2a: 2200 movs r2, #0 8005c2c: 701a strb r2, [r3, #0] } else menu = MAIN; } } break; 8005c2e: f000 bc33 b.w 8006498 menu = MAIN; 8005c32: 4b53 ldr r3, [pc, #332] ; (8005d80 ) 8005c34: 2200 movs r2, #0 8005c36: 701a strb r2, [r3, #0] break; 8005c38: f000 bc2e b.w 8006498 case MAIN: BSP_LCD_SetFont(&Font12); 8005c3c: 4852 ldr r0, [pc, #328] ; (8005d88 ) 8005c3e: f7fe fc97 bl 8004570 if(CNT_CHANNELS < 5) //todo 8005c42: 4b52 ldr r3, [pc, #328] ; (8005d8c ) 8005c44: 681b ldr r3, [r3, #0] 8005c46: 2b04 cmp r3, #4 8005c48: f200 8462 bhi.w 8006510 { LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8005c4c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005c50: f04f 30ff mov.w r0, #4294967295 8005c54: f7fe fc50 bl 80044f8 BSP_LCD_FillRect(0, 0, 158, 24); 8005c58: 2318 movs r3, #24 8005c5a: 229e movs r2, #158 ; 0x9e 8005c5c: 2100 movs r1, #0 8005c5e: 2000 movs r0, #0 8005c60: f7ff f80c bl 8004c7c BSP_LCD_FillRect(0, 120, 158, 24); 8005c64: 2318 movs r3, #24 8005c66: 229e movs r2, #158 ; 0x9e 8005c68: 2178 movs r1, #120 ; 0x78 8005c6a: 2000 movs r0, #0 8005c6c: f7ff f806 bl 8004c7c BSP_LCD_FillRect(161, 0, 158, 24); 8005c70: 2318 movs r3, #24 8005c72: 229e movs r2, #158 ; 0x9e 8005c74: 2100 movs r1, #0 8005c76: 20a1 movs r0, #161 ; 0xa1 8005c78: f7ff f800 bl 8004c7c BSP_LCD_FillRect(161, 120, 158, 24); 8005c7c: 2318 movs r3, #24 8005c7e: 229e movs r2, #158 ; 0x9e 8005c80: 2178 movs r1, #120 ; 0x78 8005c82: 20a1 movs r0, #161 ; 0xa1 8005c84: f7fe fffa bl 8004c7c BSP_LCD_DrawRect(0, 0, 318, 238); 8005c88: 23ee movs r3, #238 ; 0xee 8005c8a: f44f 729f mov.w r2, #318 ; 0x13e 8005c8e: 2100 movs r1, #0 8005c90: 2000 movs r0, #0 8005c92: f7fe fe6b bl 800496c BSP_LCD_DrawVLine(159, 0, 239); 8005c96: 22ef movs r2, #239 ; 0xef 8005c98: 2100 movs r1, #0 8005c9a: 209f movs r0, #159 ; 0x9f 8005c9c: f7fe fe04 bl 80048a8 // 1-2 // for(i = 0; i < 2; i++) 8005ca0: 2300 movs r3, #0 8005ca2: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0 8005ca6: e054 b.n 8005d52 { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8005ca8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005cac: 4838 ldr r0, [pc, #224] ; (8005d90 ) 8005cae: f7fe fc23 bl 80044f8 BSP_LCD_DisplayStringAt(4, 27 + 120*i, "ВХОД:", LEFT_MODE); 8005cb2: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005cb6: b29b uxth r3, r3 8005cb8: 461a mov r2, r3 8005cba: 0112 lsls r2, r2, #4 8005cbc: 1ad3 subs r3, r2, r3 8005cbe: 00db lsls r3, r3, #3 8005cc0: b29b uxth r3, r3 8005cc2: 331b adds r3, #27 8005cc4: b299 uxth r1, r3 8005cc6: 2303 movs r3, #3 8005cc8: 4a32 ldr r2, [pc, #200] ; (8005d94 ) 8005cca: 2004 movs r0, #4 8005ccc: f7fe fcda bl 8004684 BSP_LCD_DisplayStringAt(3, 46 + 120*i, "ФВЧ:", LEFT_MODE); 8005cd0: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005cd4: b29b uxth r3, r3 8005cd6: 461a mov r2, r3 8005cd8: 0112 lsls r2, r2, #4 8005cda: 1ad3 subs r3, r2, r3 8005cdc: 00db lsls r3, r3, #3 8005cde: b29b uxth r3, r3 8005ce0: 332e adds r3, #46 ; 0x2e 8005ce2: b299 uxth r1, r3 8005ce4: 2303 movs r3, #3 8005ce6: 4a2c ldr r2, [pc, #176] ; (8005d98 ) 8005ce8: 2003 movs r0, #3 8005cea: f7fe fccb bl 8004684 BSP_LCD_DisplayStringAt(3, 65 + 120*i, "ФНЧ:", LEFT_MODE); 8005cee: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005cf2: b29b uxth r3, r3 8005cf4: 461a mov r2, r3 8005cf6: 0112 lsls r2, r2, #4 8005cf8: 1ad3 subs r3, r2, r3 8005cfa: 00db lsls r3, r3, #3 8005cfc: b29b uxth r3, r3 8005cfe: 3341 adds r3, #65 ; 0x41 8005d00: b299 uxth r1, r3 8005d02: 2303 movs r3, #3 8005d04: 4a25 ldr r2, [pc, #148] ; (8005d9c ) 8005d06: 2003 movs r0, #3 8005d08: f7fe fcbc bl 8004684 BSP_LCD_DisplayStringAt(4, 84 + 120*i, "ДАТЧИК:", LEFT_MODE); 8005d0c: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005d10: b29b uxth r3, r3 8005d12: 461a mov r2, r3 8005d14: 0112 lsls r2, r2, #4 8005d16: 1ad3 subs r3, r2, r3 8005d18: 00db lsls r3, r3, #3 8005d1a: b29b uxth r3, r3 8005d1c: 3354 adds r3, #84 ; 0x54 8005d1e: b299 uxth r1, r3 8005d20: 2303 movs r3, #3 8005d22: 4a1f ldr r2, [pc, #124] ; (8005da0 ) 8005d24: 2004 movs r0, #4 8005d26: f7fe fcad bl 8004684 BSP_LCD_DisplayStringAt(4, 103 + 120*i, "ВЫХОД:", LEFT_MODE); 8005d2a: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005d2e: b29b uxth r3, r3 8005d30: 461a mov r2, r3 8005d32: 0112 lsls r2, r2, #4 8005d34: 1ad3 subs r3, r2, r3 8005d36: 00db lsls r3, r3, #3 8005d38: b29b uxth r3, r3 8005d3a: 3367 adds r3, #103 ; 0x67 8005d3c: b299 uxth r1, r3 8005d3e: 2303 movs r3, #3 8005d40: 4a18 ldr r2, [pc, #96] ; (8005da4 ) 8005d42: 2004 movs r0, #4 8005d44: f7fe fc9e bl 8004684 for(i = 0; i < 2; i++) 8005d48: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005d4c: 3301 adds r3, #1 8005d4e: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0 8005d52: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005d56: 2b01 cmp r3, #1 8005d58: d9a6 bls.n 8005ca8 //BSP_LCD_DisplayStringAt(4, 84 + 120*i, "Км:", LEFT_MODE); //BSP_LCD_DisplayStringAt(4, 103 + 120*i, "Кн:", LEFT_MODE); } // 3-4 // for(i = 0; i < 2; i++) 8005d5a: 2300 movs r3, #0 8005d5c: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0 8005d60: e077 b.n 8005e52 8005d62: bf00 nop 8005d64: 51eb851f .word 0x51eb851f 8005d68: cccccccd .word 0xcccccccd 8005d6c: 08012920 .word 0x08012920 8005d70: 2006ba84 .word 0x2006ba84 8005d74: 08012928 .word 0x08012928 8005d78: 2006b2f8 .word 0x2006b2f8 8005d7c: 2006b2d8 .word 0x2006b2d8 8005d80: 20020245 .word 0x20020245 8005d84: 20020010 .word 0x20020010 8005d88: 20020000 .word 0x20020000 8005d8c: 2006b2d4 .word 0x2006b2d4 8005d90: ffd3d3d3 .word 0xffd3d3d3 8005d94: 0801293c .word 0x0801293c 8005d98: 08012944 .word 0x08012944 8005d9c: 0801294c .word 0x0801294c 8005da0: 08012954 .word 0x08012954 8005da4: 0801295c .word 0x0801295c { LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8005da8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005dac: 48cb ldr r0, [pc, #812] ; (80060dc ) 8005dae: f7fe fba3 bl 80044f8 BSP_LCD_DisplayStringAt(164, 27 + 120*i, "ВХОД:", LEFT_MODE); 8005db2: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005db6: b29b uxth r3, r3 8005db8: 461a mov r2, r3 8005dba: 0112 lsls r2, r2, #4 8005dbc: 1ad3 subs r3, r2, r3 8005dbe: 00db lsls r3, r3, #3 8005dc0: b29b uxth r3, r3 8005dc2: 331b adds r3, #27 8005dc4: b299 uxth r1, r3 8005dc6: 2303 movs r3, #3 8005dc8: 4ac5 ldr r2, [pc, #788] ; (80060e0 ) 8005dca: 20a4 movs r0, #164 ; 0xa4 8005dcc: f7fe fc5a bl 8004684 BSP_LCD_DisplayStringAt(163, 46 + 120*i, "ФВЧ:", LEFT_MODE); 8005dd0: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005dd4: b29b uxth r3, r3 8005dd6: 461a mov r2, r3 8005dd8: 0112 lsls r2, r2, #4 8005dda: 1ad3 subs r3, r2, r3 8005ddc: 00db lsls r3, r3, #3 8005dde: b29b uxth r3, r3 8005de0: 332e adds r3, #46 ; 0x2e 8005de2: b299 uxth r1, r3 8005de4: 2303 movs r3, #3 8005de6: 4abf ldr r2, [pc, #764] ; (80060e4 ) 8005de8: 20a3 movs r0, #163 ; 0xa3 8005dea: f7fe fc4b bl 8004684 BSP_LCD_DisplayStringAt(163, 65 + 120*i, "ФНЧ:", LEFT_MODE); 8005dee: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005df2: b29b uxth r3, r3 8005df4: 461a mov r2, r3 8005df6: 0112 lsls r2, r2, #4 8005df8: 1ad3 subs r3, r2, r3 8005dfa: 00db lsls r3, r3, #3 8005dfc: b29b uxth r3, r3 8005dfe: 3341 adds r3, #65 ; 0x41 8005e00: b299 uxth r1, r3 8005e02: 2303 movs r3, #3 8005e04: 4ab8 ldr r2, [pc, #736] ; (80060e8 ) 8005e06: 20a3 movs r0, #163 ; 0xa3 8005e08: f7fe fc3c bl 8004684 BSP_LCD_DisplayStringAt(164, 84 + 120*i, "ДАТЧИК:", LEFT_MODE); 8005e0c: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005e10: b29b uxth r3, r3 8005e12: 461a mov r2, r3 8005e14: 0112 lsls r2, r2, #4 8005e16: 1ad3 subs r3, r2, r3 8005e18: 00db lsls r3, r3, #3 8005e1a: b29b uxth r3, r3 8005e1c: 3354 adds r3, #84 ; 0x54 8005e1e: b299 uxth r1, r3 8005e20: 2303 movs r3, #3 8005e22: 4ab2 ldr r2, [pc, #712] ; (80060ec ) 8005e24: 20a4 movs r0, #164 ; 0xa4 8005e26: f7fe fc2d bl 8004684 BSP_LCD_DisplayStringAt(164, 103 + 120*i, "ВЫХОД:", LEFT_MODE); 8005e2a: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005e2e: b29b uxth r3, r3 8005e30: 461a mov r2, r3 8005e32: 0112 lsls r2, r2, #4 8005e34: 1ad3 subs r3, r2, r3 8005e36: 00db lsls r3, r3, #3 8005e38: b29b uxth r3, r3 8005e3a: 3367 adds r3, #103 ; 0x67 8005e3c: b299 uxth r1, r3 8005e3e: 2303 movs r3, #3 8005e40: 4aab ldr r2, [pc, #684] ; (80060f0 ) 8005e42: 20a4 movs r0, #164 ; 0xa4 8005e44: f7fe fc1e bl 8004684 for(i = 0; i < 2; i++) 8005e48: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005e4c: 3301 adds r3, #1 8005e4e: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0 8005e52: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005e56: 2b01 cmp r3, #1 8005e58: d9a6 bls.n 8005da8 //BSP_LCD_DisplayStringAt(164, 84 + 120*i, "Км:", LEFT_MODE); //BSP_LCD_DisplayStringAt(164, 103 + 120*i, "Кн:", LEFT_MODE); } LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 8005e5a: f04f 31ff mov.w r1, #4294967295 8005e5e: f04f 407f mov.w r0, #4278190080 ; 0xff000000 8005e62: f7fe fb49 bl 80044f8 BSP_LCD_DisplayStringAt(79, 8, "КАНАЛ 1", CENTER_MODE); 8005e66: 2301 movs r3, #1 8005e68: 4aa2 ldr r2, [pc, #648] ; (80060f4 ) 8005e6a: 2108 movs r1, #8 8005e6c: 204f movs r0, #79 ; 0x4f 8005e6e: f7fe fc09 bl 8004684 BSP_LCD_DisplayStringAt(79, 128, "КАНАЛ 2", CENTER_MODE); 8005e72: 2301 movs r3, #1 8005e74: 4aa0 ldr r2, [pc, #640] ; (80060f8 ) 8005e76: 2180 movs r1, #128 ; 0x80 8005e78: 204f movs r0, #79 ; 0x4f 8005e7a: f7fe fc03 bl 8004684 BSP_LCD_DisplayStringAt(239, 8, "КАНАЛ 3", CENTER_MODE); 8005e7e: 2301 movs r3, #1 8005e80: 4a9e ldr r2, [pc, #632] ; (80060fc ) 8005e82: 2108 movs r1, #8 8005e84: 20ef movs r0, #239 ; 0xef 8005e86: f7fe fbfd bl 8004684 BSP_LCD_DisplayStringAt(239, 128, "КАНАЛ 4", CENTER_MODE); 8005e8a: 2301 movs r3, #1 8005e8c: 4a9c ldr r2, [pc, #624] ; (8006100 ) 8005e8e: 2180 movs r1, #128 ; 0x80 8005e90: 20ef movs r0, #239 ; 0xef 8005e92: f7fe fbf7 bl 8004684 for(i = 0; i < 4; i++) 8005e96: 2300 movs r3, #0 8005e98: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0 8005e9c: e018 b.n 8005ed0 { if(MASK_CHANNELS & (1 << i)) { 8005e9e: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005ea2: 2201 movs r2, #1 8005ea4: fa02 f303 lsl.w r3, r2, r3 8005ea8: 461a mov r2, r3 8005eaa: 4b96 ldr r3, [pc, #600] ; (8006104 ) 8005eac: 681b ldr r3, [r3, #0] 8005eae: 4013 ands r3, r2 8005eb0: 2b00 cmp r3, #0 8005eb2: d008 beq.n 8005ec6 DrawChannel_4(i, blk); 8005eb4: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005eb8: b2da uxtb r2, r3 8005eba: 4b93 ldr r3, [pc, #588] ; (8006108 ) 8005ebc: 681b ldr r3, [r3, #0] 8005ebe: 4619 mov r1, r3 8005ec0: 4610 mov r0, r2 8005ec2: f000 fe93 bl 8006bec for(i = 0; i < 4; i++) 8005ec6: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005eca: 3301 adds r3, #1 8005ecc: f8c7 33f0 str.w r3, [r7, #1008] ; 0x3f0 8005ed0: f8d7 33f0 ldr.w r3, [r7, #1008] ; 0x3f0 8005ed4: 2b03 cmp r3, #3 8005ed6: d9e2 bls.n 8005e9e } else { } break; 8005ed8: e31a b.n 8006510 case CALIBR_00: BSP_LCD_SetFont(&Font12); 8005eda: 488c ldr r0, [pc, #560] ; (800610c ) 8005edc: f7fe fb48 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 8005ee0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005ee4: f06f 00ff mvn.w r0, #255 ; 0xff 8005ee8: f7fe fb06 bl 80044f8 BSP_LCD_DisplayStringAt(160, 24, "Выберите канал для калибровки:", CENTER_MODE); 8005eec: 2301 movs r3, #1 8005eee: 4a88 ldr r2, [pc, #544] ; (8006110 ) 8005ef0: 2118 movs r1, #24 8005ef2: 20a0 movs r0, #160 ; 0xa0 8005ef4: f7fe fbc6 bl 8004684 if(menupos != Ch1) 8005ef8: 4b86 ldr r3, [pc, #536] ; (8006114 ) 8005efa: 781b ldrb r3, [r3, #0] 8005efc: b2db uxtb r3, r3 8005efe: 2b00 cmp r3, #0 8005f00: d006 beq.n 8005f10 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8005f02: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005f06: f04f 30ff mov.w r0, #4294967295 8005f0a: f7fe faf5 bl 80044f8 8005f0e: e005 b.n 8005f1c else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8005f10: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005f14: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8005f18: f7fe faee bl 80044f8 BSP_LCD_DisplayStringAt(160, 48+64, "КАНАЛ 1", CENTER_MODE); 8005f1c: 2301 movs r3, #1 8005f1e: 4a75 ldr r2, [pc, #468] ; (80060f4 ) 8005f20: 2170 movs r1, #112 ; 0x70 8005f22: 20a0 movs r0, #160 ; 0xa0 8005f24: f7fe fbae bl 8004684 if(menupos != Ch2) 8005f28: 4b7a ldr r3, [pc, #488] ; (8006114 ) 8005f2a: 781b ldrb r3, [r3, #0] 8005f2c: b2db uxtb r3, r3 8005f2e: 2b01 cmp r3, #1 8005f30: d006 beq.n 8005f40 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8005f32: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005f36: f04f 30ff mov.w r0, #4294967295 8005f3a: f7fe fadd bl 80044f8 8005f3e: e005 b.n 8005f4c else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8005f40: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005f44: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8005f48: f7fe fad6 bl 80044f8 BSP_LCD_DisplayStringAt(160, 72+64, "КАНАЛ 2", CENTER_MODE); 8005f4c: 2301 movs r3, #1 8005f4e: 4a6a ldr r2, [pc, #424] ; (80060f8 ) 8005f50: 2188 movs r1, #136 ; 0x88 8005f52: 20a0 movs r0, #160 ; 0xa0 8005f54: f7fe fb96 bl 8004684 if(menupos != Ch3) 8005f58: 4b6e ldr r3, [pc, #440] ; (8006114 ) 8005f5a: 781b ldrb r3, [r3, #0] 8005f5c: b2db uxtb r3, r3 8005f5e: 2b02 cmp r3, #2 8005f60: d006 beq.n 8005f70 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8005f62: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005f66: f04f 30ff mov.w r0, #4294967295 8005f6a: f7fe fac5 bl 80044f8 8005f6e: e005 b.n 8005f7c else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8005f70: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005f74: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8005f78: f7fe fabe bl 80044f8 BSP_LCD_DisplayStringAt(160, 96+64, "КАНАЛ 3", CENTER_MODE); 8005f7c: 2301 movs r3, #1 8005f7e: 4a5f ldr r2, [pc, #380] ; (80060fc ) 8005f80: 21a0 movs r1, #160 ; 0xa0 8005f82: 20a0 movs r0, #160 ; 0xa0 8005f84: f7fe fb7e bl 8004684 if(menupos != Ch4) 8005f88: 4b62 ldr r3, [pc, #392] ; (8006114 ) 8005f8a: 781b ldrb r3, [r3, #0] 8005f8c: b2db uxtb r3, r3 8005f8e: 2b03 cmp r3, #3 8005f90: d006 beq.n 8005fa0 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8005f92: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005f96: f04f 30ff mov.w r0, #4294967295 8005f9a: f7fe faad bl 80044f8 8005f9e: e005 b.n 8005fac else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8005fa0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005fa4: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8005fa8: f7fe faa6 bl 80044f8 BSP_LCD_DisplayStringAt(160, 120+64, "КАНАЛ 4", CENTER_MODE); 8005fac: 2301 movs r3, #1 8005fae: 4a54 ldr r2, [pc, #336] ; (8006100 ) 8005fb0: 21b8 movs r1, #184 ; 0xb8 8005fb2: 20a0 movs r0, #160 ; 0xa0 8005fb4: f7fe fb66 bl 8004684 if(menupos != Ch5) 8005fb8: 4b56 ldr r3, [pc, #344] ; (8006114 ) 8005fba: 781b ldrb r3, [r3, #0] 8005fbc: b2db uxtb r3, r3 8005fbe: 2b04 cmp r3, #4 8005fc0: d006 beq.n 8005fd0 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8005fc2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005fc6: f04f 30ff mov.w r0, #4294967295 8005fca: f7fe fa95 bl 80044f8 8005fce: e005 b.n 8005fdc else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8005fd0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005fd4: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8005fd8: f7fe fa8e bl 80044f8 BSP_LCD_DisplayStringAt(160, 144+64, "ВЫХОД", CENTER_MODE); 8005fdc: 2301 movs r3, #1 8005fde: 4a4e ldr r2, [pc, #312] ; (8006118 ) 8005fe0: 21d0 movs r1, #208 ; 0xd0 8005fe2: 20a0 movs r0, #160 ; 0xa0 8005fe4: f7fe fb4e bl 8004684 break; 8005fe8: e293 b.n 8006512 case CALIBR_0: // [CHARGE x1] + KU_1 BSP_LCD_SetFont(&Font12); 8005fea: 4848 ldr r0, [pc, #288] ; (800610c ) 8005fec: f7fe fac0 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 8005ff0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8005ff4: f06f 00ff mvn.w r0, #255 ; 0xff 8005ff8: f7fe fa7e bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.1]:", CENTER_MODE); 8005ffc: 2301 movs r3, #1 8005ffe: 4a47 ldr r2, [pc, #284] ; (800611c ) 8006000: 210a movs r1, #10 8006002: 20a0 movs r0, #160 ; 0xa0 8006004: f7fe fb3e bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 8006008: 2301 movs r3, #1 800600a: 4a45 ldr r2, [pc, #276] ; (8006120 ) 800600c: 2118 movs r1, #24 800600e: 20a0 movs r0, #160 ; 0xa0 8006010: f7fe fb38 bl 8004684 DrawButtons(); 8006014: f005 fb50 bl 800b6b8 break; 8006018: e27b b.n 8006512 case CALIBR_1: // CHARGE x1 + [KU_2] BSP_LCD_SetFont(&Font12); 800601a: 483c ldr r0, [pc, #240] ; (800610c ) 800601c: f7fe faa8 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 8006020: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006024: f06f 00ff mvn.w r0, #255 ; 0xff 8006028: f7fe fa66 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.2]:", CENTER_MODE); 800602c: 2301 movs r3, #1 800602e: 4a3d ldr r2, [pc, #244] ; (8006124 ) 8006030: 210a movs r1, #10 8006032: 20a0 movs r0, #160 ; 0xa0 8006034: f7fe fb26 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 8006038: 2301 movs r3, #1 800603a: 4a39 ldr r2, [pc, #228] ; (8006120 ) 800603c: 2118 movs r1, #24 800603e: 20a0 movs r0, #160 ; 0xa0 8006040: f7fe fb20 bl 8004684 DrawButtons(); 8006044: f005 fb38 bl 800b6b8 break; 8006048: e263 b.n 8006512 case CALIBR_2: // CHARGE x1 + [KU_5] BSP_LCD_SetFont(&Font12); 800604a: 4830 ldr r0, [pc, #192] ; (800610c ) 800604c: f7fe fa90 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 8006050: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006054: f06f 00ff mvn.w r0, #255 ; 0xff 8006058: f7fe fa4e bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx0.5]:", CENTER_MODE); 800605c: 2301 movs r3, #1 800605e: 4a32 ldr r2, [pc, #200] ; (8006128 ) 8006060: 210a movs r1, #10 8006062: 20a0 movs r0, #160 ; 0xa0 8006064: f7fe fb0e bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 8006068: 2301 movs r3, #1 800606a: 4a2d ldr r2, [pc, #180] ; (8006120 ) 800606c: 2118 movs r1, #24 800606e: 20a0 movs r0, #160 ; 0xa0 8006070: f7fe fb08 bl 8004684 DrawButtons(); 8006074: f005 fb20 bl 800b6b8 break; 8006078: e24b b.n 8006512 case CALIBR_3: // CHARGE x1 + [KU_10] BSP_LCD_SetFont(&Font12); 800607a: 4824 ldr r0, [pc, #144] ; (800610c ) 800607c: f7fe fa78 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 8006080: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006084: f06f 00ff mvn.w r0, #255 ; 0xff 8006088: f7fe fa36 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx1]:", CENTER_MODE); 800608c: 2301 movs r3, #1 800608e: 4a27 ldr r2, [pc, #156] ; (800612c ) 8006090: 210a movs r1, #10 8006092: 20a0 movs r0, #160 ; 0xa0 8006094: f7fe faf6 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 8006098: 2301 movs r3, #1 800609a: 4a21 ldr r2, [pc, #132] ; (8006120 ) 800609c: 2118 movs r1, #24 800609e: 20a0 movs r0, #160 ; 0xa0 80060a0: f7fe faf0 bl 8004684 DrawButtons(); 80060a4: f005 fb08 bl 800b6b8 break; 80060a8: e233 b.n 8006512 case CALIBR_4: // CHARGE x1 + [KU_x10] BSP_LCD_SetFont(&Font12); 80060aa: 4818 ldr r0, [pc, #96] ; (800610c ) 80060ac: f7fe fa60 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 80060b0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80060b4: f06f 00ff mvn.w r0, #255 ; 0xff 80060b8: f7fe fa1e bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx2]:", CENTER_MODE); 80060bc: 2301 movs r3, #1 80060be: 4a1c ldr r2, [pc, #112] ; (8006130 ) 80060c0: 210a movs r1, #10 80060c2: 20a0 movs r0, #160 ; 0xa0 80060c4: f7fe fade bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 2500мВ", CENTER_MODE); 80060c8: 2301 movs r3, #1 80060ca: 4a1a ldr r2, [pc, #104] ; (8006134 ) 80060cc: 2118 movs r1, #24 80060ce: 20a0 movs r0, #160 ; 0xa0 80060d0: f7fe fad8 bl 8004684 DrawButtons(); 80060d4: f005 faf0 bl 800b6b8 break; 80060d8: e21b b.n 8006512 80060da: bf00 nop 80060dc: ffd3d3d3 .word 0xffd3d3d3 80060e0: 0801293c .word 0x0801293c 80060e4: 08012944 .word 0x08012944 80060e8: 0801294c .word 0x0801294c 80060ec: 08012954 .word 0x08012954 80060f0: 0801295c .word 0x0801295c 80060f4: 08012964 .word 0x08012964 80060f8: 0801296c .word 0x0801296c 80060fc: 08012974 .word 0x08012974 8006100: 0801297c .word 0x0801297c 8006104: 20020028 .word 0x20020028 8006108: 2006b2e0 .word 0x2006b2e0 800610c: 20020000 .word 0x20020000 8006110: 08012984 .word 0x08012984 8006114: 20020010 .word 0x20020010 8006118: 080129a4 .word 0x080129a4 800611c: 080129ac .word 0x080129ac 8006120: 080129c4 .word 0x080129c4 8006124: 080129dc .word 0x080129dc 8006128: 080129f4 .word 0x080129f4 800612c: 08012a0c .word 0x08012a0c 8006130: 08012a24 .word 0x08012a24 8006134: 08012a3c .word 0x08012a3c case CALIBR_5: // [CHARGE x10] + KU_1 BSP_LCD_SetFont(&Font12); 8006138: 48d8 ldr r0, [pc, #864] ; (800649c ) 800613a: f7fe fa19 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800613e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006142: f06f 00ff mvn.w r0, #255 ; 0xff 8006146: f7fe f9d7 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx5]:", CENTER_MODE); 800614a: 2301 movs r3, #1 800614c: 4ad4 ldr r2, [pc, #848] ; (80064a0 ) 800614e: 210a movs r1, #10 8006150: 20a0 movs r0, #160 ; 0xa0 8006152: f7fe fa97 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 1000мВ", CENTER_MODE); 8006156: 2301 movs r3, #1 8006158: 4ad2 ldr r2, [pc, #840] ; (80064a4 ) 800615a: 2118 movs r1, #24 800615c: 20a0 movs r0, #160 ; 0xa0 800615e: f7fe fa91 bl 8004684 DrawButtons(); 8006162: f005 faa9 bl 800b6b8 break; 8006166: e1d4 b.n 8006512 case CALIBR_6: // [CHARGE x0.1] + KU_1 BSP_LCD_SetFont(&Font12); 8006168: 48cc ldr r0, [pc, #816] ; (800649c ) 800616a: f7fe fa01 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800616e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006172: f06f 00ff mvn.w r0, #255 ; 0xff 8006176: f7fe f9bf bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx10]:", CENTER_MODE); 800617a: 2301 movs r3, #1 800617c: 4aca ldr r2, [pc, #808] ; (80064a8 ) 800617e: 210a movs r1, #10 8006180: 20a0 movs r0, #160 ; 0xa0 8006182: f7fe fa7f bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 500мВ", CENTER_MODE); 8006186: 2301 movs r3, #1 8006188: 4ac8 ldr r2, [pc, #800] ; (80064ac ) 800618a: 2118 movs r1, #24 800618c: 20a0 movs r0, #160 ; 0xa0 800618e: f7fe fa79 bl 8004684 DrawButtons(); 8006192: f005 fa91 bl 800b6b8 break; 8006196: e1bc b.n 8006512 case CALIBR_7: // [ICP x1] + KU_1 BSP_LCD_SetFont(&Font12); 8006198: 48c0 ldr r0, [pc, #768] ; (800649c ) 800619a: f7fe f9e9 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800619e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80061a2: f06f 00ff mvn.w r0, #255 ; 0xff 80061a6: f7fe f9a7 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx20]:", CENTER_MODE); 80061aa: 2301 movs r3, #1 80061ac: 4ac0 ldr r2, [pc, #768] ; (80064b0 ) 80061ae: 210a movs r1, #10 80061b0: 20a0 movs r0, #160 ; 0xa0 80061b2: f7fe fa67 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 250мВ", CENTER_MODE); 80061b6: 2301 movs r3, #1 80061b8: 4abe ldr r2, [pc, #760] ; (80064b4 ) 80061ba: 2118 movs r1, #24 80061bc: 20a0 movs r0, #160 ; 0xa0 80061be: f7fe fa61 bl 8004684 DrawButtons(); 80061c2: f005 fa79 bl 800b6b8 break; 80061c6: e1a4 b.n 8006512 case CALIBR_8: // [ICP x10] + KU_1 BSP_LCD_SetFont(&Font12); 80061c8: 48b4 ldr r0, [pc, #720] ; (800649c ) 80061ca: f7fe f9d1 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 80061ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80061d2: f06f 00ff mvn.w r0, #255 ; 0xff 80061d6: f7fe f98f bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx50]:", CENTER_MODE); 80061da: 2301 movs r3, #1 80061dc: 4ab6 ldr r2, [pc, #728] ; (80064b8 ) 80061de: 210a movs r1, #10 80061e0: 20a0 movs r0, #160 ; 0xa0 80061e2: f7fe fa4f bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 100мВ", CENTER_MODE); 80061e6: 2301 movs r3, #1 80061e8: 4ab4 ldr r2, [pc, #720] ; (80064bc ) 80061ea: 2118 movs r1, #24 80061ec: 20a0 movs r0, #160 ; 0xa0 80061ee: f7fe fa49 bl 8004684 DrawButtons(); 80061f2: f005 fa61 bl 800b6b8 break; 80061f6: e18c b.n 8006512 case CALIBR_9: // [CHARGE x10 + KU_2 + KU_x10] BSP_LCD_SetFont(&Font12); 80061f8: 48a8 ldr r0, [pc, #672] ; (800649c ) 80061fa: f7fe f9b9 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 80061fe: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006202: f06f 00ff mvn.w r0, #255 ; 0xff 8006206: f7fe f977 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx100]:", CENTER_MODE); 800620a: 2301 movs r3, #1 800620c: 4aac ldr r2, [pc, #688] ; (80064c0 ) 800620e: 210a movs r1, #10 8006210: 20a0 movs r0, #160 ; 0xa0 8006212: f7fe fa37 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 50мВ", CENTER_MODE); 8006216: 2301 movs r3, #1 8006218: 4aaa ldr r2, [pc, #680] ; (80064c4 ) 800621a: 2118 movs r1, #24 800621c: 20a0 movs r0, #160 ; 0xa0 800621e: f7fe fa31 bl 8004684 DrawButtons(); 8006222: f005 fa49 bl 800b6b8 break; 8006226: e174 b.n 8006512 case CALIBR_10: // [CHARGE x10 + KU_5 + KU_x10] BSP_LCD_SetFont(&Font12); 8006228: 489c ldr r0, [pc, #624] ; (800649c ) 800622a: f7fe f9a1 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800622e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006232: f06f 00ff mvn.w r0, #255 ; 0xff 8006236: f7fe f95f bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx200]:", CENTER_MODE); 800623a: 2301 movs r3, #1 800623c: 4aa2 ldr r2, [pc, #648] ; (80064c8 ) 800623e: 210a movs r1, #10 8006240: 20a0 movs r0, #160 ; 0xa0 8006242: f7fe fa1f bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 25мВ", CENTER_MODE); 8006246: 2301 movs r3, #1 8006248: 4aa0 ldr r2, [pc, #640] ; (80064cc ) 800624a: 2118 movs r1, #24 800624c: 20a0 movs r0, #160 ; 0xa0 800624e: f7fe fa19 bl 8004684 DrawButtons(); 8006252: f005 fa31 bl 800b6b8 break; 8006256: e15c b.n 8006512 case CALIBR_11: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006258: 4890 ldr r0, [pc, #576] ; (800649c ) 800625a: f7fe f989 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800625e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006262: f06f 00ff mvn.w r0, #255 ; 0xff 8006266: f7fe f947 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx500]:", CENTER_MODE); 800626a: 2301 movs r3, #1 800626c: 4a98 ldr r2, [pc, #608] ; (80064d0 ) 800626e: 210a movs r1, #10 8006270: 20a0 movs r0, #160 ; 0xa0 8006272: f7fe fa07 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 10мВ", CENTER_MODE); 8006276: 2301 movs r3, #1 8006278: 4a96 ldr r2, [pc, #600] ; (80064d4 ) 800627a: 2118 movs r1, #24 800627c: 20a0 movs r0, #160 ; 0xa0 800627e: f7fe fa01 bl 8004684 DrawButtons(); 8006282: f005 fa19 bl 800b6b8 break; 8006286: e144 b.n 8006512 case CALIBR_12: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006288: 4884 ldr r0, [pc, #528] ; (800649c ) 800628a: f7fe f971 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800628e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006292: f06f 00ff mvn.w r0, #255 ; 0xff 8006296: f7fe f92f bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [ЗАРЯДx1000]:", CENTER_MODE); 800629a: 2301 movs r3, #1 800629c: 4a8e ldr r2, [pc, #568] ; (80064d8 ) 800629e: 210a movs r1, #10 80062a0: 20a0 movs r0, #160 ; 0xa0 80062a2: f7fe f9ef bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5мВ", CENTER_MODE); 80062a6: 2301 movs r3, #1 80062a8: 4a8c ldr r2, [pc, #560] ; (80064dc ) 80062aa: 2118 movs r1, #24 80062ac: 20a0 movs r0, #160 ; 0xa0 80062ae: f7fe f9e9 bl 8004684 DrawButtons(); 80062b2: f005 fa01 bl 800b6b8 break; 80062b6: e12c b.n 8006512 case CALIBR_13: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 80062b8: 4878 ldr r0, [pc, #480] ; (800649c ) 80062ba: f7fe f959 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 80062be: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80062c2: f06f 00ff mvn.w r0, #255 ; 0xff 80062c6: f7fe f917 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx1]:", CENTER_MODE); 80062ca: 2301 movs r3, #1 80062cc: 4a84 ldr r2, [pc, #528] ; (80064e0 ) 80062ce: 210a movs r1, #10 80062d0: 20a0 movs r0, #160 ; 0xa0 80062d2: f7fe f9d7 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5000мВ", CENTER_MODE); 80062d6: 2301 movs r3, #1 80062d8: 4a82 ldr r2, [pc, #520] ; (80064e4 ) 80062da: 2118 movs r1, #24 80062dc: 20a0 movs r0, #160 ; 0xa0 80062de: f7fe f9d1 bl 8004684 DrawButtons(); 80062e2: f005 f9e9 bl 800b6b8 break; 80062e6: e114 b.n 8006512 case CALIBR_14: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 80062e8: 486c ldr r0, [pc, #432] ; (800649c ) 80062ea: f7fe f941 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 80062ee: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80062f2: f06f 00ff mvn.w r0, #255 ; 0xff 80062f6: f7fe f8ff bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx2]:", CENTER_MODE); 80062fa: 2301 movs r3, #1 80062fc: 4a7a ldr r2, [pc, #488] ; (80064e8 ) 80062fe: 210a movs r1, #10 8006300: 20a0 movs r0, #160 ; 0xa0 8006302: f7fe f9bf bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 2500мВ", CENTER_MODE); 8006306: 2301 movs r3, #1 8006308: 4a78 ldr r2, [pc, #480] ; (80064ec ) 800630a: 2118 movs r1, #24 800630c: 20a0 movs r0, #160 ; 0xa0 800630e: f7fe f9b9 bl 8004684 DrawButtons(); 8006312: f005 f9d1 bl 800b6b8 break; 8006316: e0fc b.n 8006512 case CALIBR_15: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006318: 4860 ldr r0, [pc, #384] ; (800649c ) 800631a: f7fe f929 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800631e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006322: f06f 00ff mvn.w r0, #255 ; 0xff 8006326: f7fe f8e7 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx5]:", CENTER_MODE); 800632a: 2301 movs r3, #1 800632c: 4a70 ldr r2, [pc, #448] ; (80064f0 ) 800632e: 210a movs r1, #10 8006330: 20a0 movs r0, #160 ; 0xa0 8006332: f7fe f9a7 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 1000мВ", CENTER_MODE); 8006336: 2301 movs r3, #1 8006338: 4a5a ldr r2, [pc, #360] ; (80064a4 ) 800633a: 2118 movs r1, #24 800633c: 20a0 movs r0, #160 ; 0xa0 800633e: f7fe f9a1 bl 8004684 DrawButtons(); 8006342: f005 f9b9 bl 800b6b8 break; 8006346: e0e4 b.n 8006512 case CALIBR_16: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006348: 4854 ldr r0, [pc, #336] ; (800649c ) 800634a: f7fe f911 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800634e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006352: f06f 00ff mvn.w r0, #255 ; 0xff 8006356: f7fe f8cf bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx10]:", CENTER_MODE); 800635a: 2301 movs r3, #1 800635c: 4a65 ldr r2, [pc, #404] ; (80064f4 ) 800635e: 210a movs r1, #10 8006360: 20a0 movs r0, #160 ; 0xa0 8006362: f7fe f98f bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 500мВ", CENTER_MODE); 8006366: 2301 movs r3, #1 8006368: 4a50 ldr r2, [pc, #320] ; (80064ac ) 800636a: 2118 movs r1, #24 800636c: 20a0 movs r0, #160 ; 0xa0 800636e: f7fe f989 bl 8004684 DrawButtons(); 8006372: f005 f9a1 bl 800b6b8 break; 8006376: e0cc b.n 8006512 case CALIBR_17: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006378: 4848 ldr r0, [pc, #288] ; (800649c ) 800637a: f7fe f8f9 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800637e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006382: f06f 00ff mvn.w r0, #255 ; 0xff 8006386: f7fe f8b7 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx20]:", CENTER_MODE); 800638a: 2301 movs r3, #1 800638c: 4a5a ldr r2, [pc, #360] ; (80064f8 ) 800638e: 210a movs r1, #10 8006390: 20a0 movs r0, #160 ; 0xa0 8006392: f7fe f977 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 250мВ", CENTER_MODE); 8006396: 2301 movs r3, #1 8006398: 4a46 ldr r2, [pc, #280] ; (80064b4 ) 800639a: 2118 movs r1, #24 800639c: 20a0 movs r0, #160 ; 0xa0 800639e: f7fe f971 bl 8004684 DrawButtons(); 80063a2: f005 f989 bl 800b6b8 break; 80063a6: e0b4 b.n 8006512 case CALIBR_18: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 80063a8: 483c ldr r0, [pc, #240] ; (800649c ) 80063aa: f7fe f8e1 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 80063ae: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80063b2: f06f 00ff mvn.w r0, #255 ; 0xff 80063b6: f7fe f89f bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx50]:", CENTER_MODE); 80063ba: 2301 movs r3, #1 80063bc: 4a4f ldr r2, [pc, #316] ; (80064fc ) 80063be: 210a movs r1, #10 80063c0: 20a0 movs r0, #160 ; 0xa0 80063c2: f7fe f95f bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 100мВ", CENTER_MODE); 80063c6: 2301 movs r3, #1 80063c8: 4a3c ldr r2, [pc, #240] ; (80064bc ) 80063ca: 2118 movs r1, #24 80063cc: 20a0 movs r0, #160 ; 0xa0 80063ce: f7fe f959 bl 8004684 DrawButtons(); 80063d2: f005 f971 bl 800b6b8 break; 80063d6: e09c b.n 8006512 case CALIBR_19: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 80063d8: 4830 ldr r0, [pc, #192] ; (800649c ) 80063da: f7fe f8c9 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 80063de: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80063e2: f06f 00ff mvn.w r0, #255 ; 0xff 80063e6: f7fe f887 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx100]:", CENTER_MODE); 80063ea: 2301 movs r3, #1 80063ec: 4a44 ldr r2, [pc, #272] ; (8006500 ) 80063ee: 210a movs r1, #10 80063f0: 20a0 movs r0, #160 ; 0xa0 80063f2: f7fe f947 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 50мВ", CENTER_MODE); 80063f6: 2301 movs r3, #1 80063f8: 4a32 ldr r2, [pc, #200] ; (80064c4 ) 80063fa: 2118 movs r1, #24 80063fc: 20a0 movs r0, #160 ; 0xa0 80063fe: f7fe f941 bl 8004684 DrawButtons(); 8006402: f005 f959 bl 800b6b8 break; 8006406: e084 b.n 8006512 case CALIBR_20: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006408: 4824 ldr r0, [pc, #144] ; (800649c ) 800640a: f7fe f8b1 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800640e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006412: f06f 00ff mvn.w r0, #255 ; 0xff 8006416: f7fe f86f bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx200]:", CENTER_MODE); 800641a: 2301 movs r3, #1 800641c: 4a39 ldr r2, [pc, #228] ; (8006504 ) 800641e: 210a movs r1, #10 8006420: 20a0 movs r0, #160 ; 0xa0 8006422: f7fe f92f bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 25мВ", CENTER_MODE); 8006426: 2301 movs r3, #1 8006428: 4a28 ldr r2, [pc, #160] ; (80064cc ) 800642a: 2118 movs r1, #24 800642c: 20a0 movs r0, #160 ; 0xa0 800642e: f7fe f929 bl 8004684 DrawButtons(); 8006432: f005 f941 bl 800b6b8 break; 8006436: e06c b.n 8006512 case CALIBR_21: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006438: 4818 ldr r0, [pc, #96] ; (800649c ) 800643a: f7fe f899 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800643e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006442: f06f 00ff mvn.w r0, #255 ; 0xff 8006446: f7fe f857 bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx500]:", CENTER_MODE); 800644a: 2301 movs r3, #1 800644c: 4a2e ldr r2, [pc, #184] ; (8006508 ) 800644e: 210a movs r1, #10 8006450: 20a0 movs r0, #160 ; 0xa0 8006452: f7fe f917 bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 10мВ", CENTER_MODE); 8006456: 2301 movs r3, #1 8006458: 4a1e ldr r2, [pc, #120] ; (80064d4 ) 800645a: 2118 movs r1, #24 800645c: 20a0 movs r0, #160 ; 0xa0 800645e: f7fe f911 bl 8004684 DrawButtons(); 8006462: f005 f929 bl 800b6b8 break; 8006466: e054 b.n 8006512 case CALIBR_22: // [CHARGE x10 + KU_10 + KU_x10] BSP_LCD_SetFont(&Font12); 8006468: 480c ldr r0, [pc, #48] ; (800649c ) 800646a: f7fe f881 bl 8004570 LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK); 800646e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006472: f06f 00ff mvn.w r0, #255 ; 0xff 8006476: f7fe f83f bl 80044f8 BSP_LCD_DisplayStringAt(160, 10, "Коррeкция [IEPEx1000]:", CENTER_MODE); 800647a: 2301 movs r3, #1 800647c: 4a23 ldr r2, [pc, #140] ; (800650c ) 800647e: 210a movs r1, #10 8006480: 20a0 movs r0, #160 ; 0xa0 8006482: f7fe f8ff bl 8004684 BSP_LCD_DisplayStringAt(160, 24, "Установить Uin = 5мВ", CENTER_MODE); 8006486: 2301 movs r3, #1 8006488: 4a14 ldr r2, [pc, #80] ; (80064dc ) 800648a: 2118 movs r1, #24 800648c: 20a0 movs r0, #160 ; 0xa0 800648e: f7fe f8f9 bl 8004684 DrawButtons(); 8006492: f005 f911 bl 800b6b8 break; 8006496: e03c b.n 8006512 break; 8006498: bf00 nop 800649a: e03a b.n 8006512 800649c: 20020000 .word 0x20020000 80064a0: 08012a54 .word 0x08012a54 80064a4: 08012a6c .word 0x08012a6c 80064a8: 08012a84 .word 0x08012a84 80064ac: 08012a9c .word 0x08012a9c 80064b0: 08012ab4 .word 0x08012ab4 80064b4: 08012acc .word 0x08012acc 80064b8: 08012ae4 .word 0x08012ae4 80064bc: 08012afc .word 0x08012afc 80064c0: 08012b14 .word 0x08012b14 80064c4: 08012b2c .word 0x08012b2c 80064c8: 08012b44 .word 0x08012b44 80064cc: 08012b5c .word 0x08012b5c 80064d0: 08012b74 .word 0x08012b74 80064d4: 08012b8c .word 0x08012b8c 80064d8: 08012ba4 .word 0x08012ba4 80064dc: 08012bbc .word 0x08012bbc 80064e0: 08012bd4 .word 0x08012bd4 80064e4: 080129c4 .word 0x080129c4 80064e8: 08012be8 .word 0x08012be8 80064ec: 08012a3c .word 0x08012a3c 80064f0: 08012bfc .word 0x08012bfc 80064f4: 08012c10 .word 0x08012c10 80064f8: 08012c28 .word 0x08012c28 80064fc: 08012c40 .word 0x08012c40 8006500: 08012c58 .word 0x08012c58 8006504: 08012c70 .word 0x08012c70 8006508: 08012c88 .word 0x08012c88 800650c: 08012ca0 .word 0x08012ca0 break; 8006510: bf00 nop Redrawing = false; 8006512: 4b07 ldr r3, [pc, #28] ; (8006530 ) 8006514: 2200 movs r2, #0 8006516: 701a strb r2, [r3, #0] RefreshScreen = true; 8006518: 4b06 ldr r3, [pc, #24] ; (8006534 ) 800651a: 2201 movs r2, #1 800651c: 701a strb r2, [r3, #0] HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0); 800651e: 2100 movs r1, #0 8006520: 4805 ldr r0, [pc, #20] ; (8006538 ) 8006522: f008 fca9 bl 800ee78 //************************************************************************************************************** //************************************************************************************************************** } 8006526: bf00 nop 8006528: f507 6780 add.w r7, r7, #1024 ; 0x400 800652c: 46bd mov sp, r7 800652e: bd80 pop {r7, pc} 8006530: 2006b2dc .word 0x2006b2dc 8006534: 2006b2cc .word 0x2006b2cc 8006538: 2006b9dc .word 0x2006b9dc 0800653c : void DrawMySpinner(uint16_t x, uint16_t y) // { 800653c: b580 push {r7, lr} 800653e: b082 sub sp, #8 8006540: af00 add r7, sp, #0 8006542: 4603 mov r3, r0 8006544: 460a mov r2, r1 8006546: 80fb strh r3, [r7, #6] 8006548: 4613 mov r3, r2 800654a: 80bb strh r3, [r7, #4] static uint32_t rotate = 0; switch(rotate) 800654c: 4b98 ldr r3, [pc, #608] ; (80067b0 ) 800654e: 681b ldr r3, [r3, #0] 8006550: 2b07 cmp r3, #7 8006552: f200 8311 bhi.w 8006b78 8006556: a201 add r2, pc, #4 ; (adr r2, 800655c ) 8006558: f852 f023 ldr.w pc, [r2, r3, lsl #2] 800655c: 0800657d .word 0x0800657d 8006560: 08006639 .word 0x08006639 8006564: 080066f5 .word 0x080066f5 8006568: 080067c1 .word 0x080067c1 800656c: 0800687d .word 0x0800687d 8006570: 08006939 .word 0x08006939 8006574: 080069f5 .word 0x080069f5 8006578: 08006abd .word 0x08006abd { case 0: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800657c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006580: f04f 30ff mov.w r0, #4294967295 8006584: f7fd ffb8 bl 80044f8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 8006588: 88bb ldrh r3, [r7, #4] 800658a: 330a adds r3, #10 800658c: b299 uxth r1, r3 800658e: 88fb ldrh r3, [r7, #6] 8006590: 2203 movs r2, #3 8006592: 4618 mov r0, r3 8006594: f7fe fbec bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8006598: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800659c: 4885 ldr r0, [pc, #532] ; (80067b4 ) 800659e: f7fd ffab bl 80044f8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 80065a2: 88fb ldrh r3, [r7, #6] 80065a4: 3307 adds r3, #7 80065a6: b298 uxth r0, r3 80065a8: 88bb ldrh r3, [r7, #4] 80065aa: 3307 adds r3, #7 80065ac: b29b uxth r3, r3 80065ae: 2203 movs r2, #3 80065b0: 4619 mov r1, r3 80065b2: f7fe fbdd bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 80065b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80065ba: 487f ldr r0, [pc, #508] ; (80067b8 ) 80065bc: f7fd ff9c bl 80044f8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 80065c0: 88fb ldrh r3, [r7, #6] 80065c2: 330a adds r3, #10 80065c4: b29b uxth r3, r3 80065c6: 88b9 ldrh r1, [r7, #4] 80065c8: 2203 movs r2, #3 80065ca: 4618 mov r0, r3 80065cc: f7fe fbd0 bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 80065d0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80065d4: 4879 ldr r0, [pc, #484] ; (80067bc ) 80065d6: f7fd ff8f bl 80044f8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 80065da: 88fb ldrh r3, [r7, #6] 80065dc: 3b07 subs r3, #7 80065de: b298 uxth r0, r3 80065e0: 88bb ldrh r3, [r7, #4] 80065e2: 3307 adds r3, #7 80065e4: b29b uxth r3, r3 80065e6: 2203 movs r2, #3 80065e8: 4619 mov r1, r3 80065ea: f7fe fbc1 bl 8004d70 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 80065ee: 88fb ldrh r3, [r7, #6] 80065f0: 3b0a subs r3, #10 80065f2: b29b uxth r3, r3 80065f4: 88b9 ldrh r1, [r7, #4] 80065f6: 2203 movs r2, #3 80065f8: 4618 mov r0, r3 80065fa: f7fe fbb9 bl 8004d70 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 80065fe: 88fb ldrh r3, [r7, #6] 8006600: 3b07 subs r3, #7 8006602: b298 uxth r0, r3 8006604: 88bb ldrh r3, [r7, #4] 8006606: 3b07 subs r3, #7 8006608: b29b uxth r3, r3 800660a: 2203 movs r2, #3 800660c: 4619 mov r1, r3 800660e: f7fe fbaf bl 8004d70 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 8006612: 88bb ldrh r3, [r7, #4] 8006614: 3b0a subs r3, #10 8006616: b299 uxth r1, r3 8006618: 88fb ldrh r3, [r7, #6] 800661a: 2203 movs r2, #3 800661c: 4618 mov r0, r3 800661e: f7fe fba7 bl 8004d70 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 8006622: 88fb ldrh r3, [r7, #6] 8006624: 3307 adds r3, #7 8006626: b298 uxth r0, r3 8006628: 88bb ldrh r3, [r7, #4] 800662a: 3b07 subs r3, #7 800662c: b29b uxth r3, r3 800662e: 2203 movs r2, #3 8006630: 4619 mov r1, r3 8006632: f7fe fb9d bl 8004d70 break; 8006636: e29f b.n 8006b78 case 1: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006638: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800663c: f04f 30ff mov.w r0, #4294967295 8006640: f7fd ff5a bl 80044f8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 8006644: 88fb ldrh r3, [r7, #6] 8006646: 3b07 subs r3, #7 8006648: b298 uxth r0, r3 800664a: 88bb ldrh r3, [r7, #4] 800664c: 3307 adds r3, #7 800664e: b29b uxth r3, r3 8006650: 2203 movs r2, #3 8006652: 4619 mov r1, r3 8006654: f7fe fb8c bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8006658: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800665c: 4855 ldr r0, [pc, #340] ; (80067b4 ) 800665e: f7fd ff4b bl 80044f8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 8006662: 88bb ldrh r3, [r7, #4] 8006664: 330a adds r3, #10 8006666: b299 uxth r1, r3 8006668: 88fb ldrh r3, [r7, #6] 800666a: 2203 movs r2, #3 800666c: 4618 mov r0, r3 800666e: f7fe fb7f bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 8006672: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006676: 4850 ldr r0, [pc, #320] ; (80067b8 ) 8006678: f7fd ff3e bl 80044f8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800667c: 88fb ldrh r3, [r7, #6] 800667e: 3307 adds r3, #7 8006680: b298 uxth r0, r3 8006682: 88bb ldrh r3, [r7, #4] 8006684: 3307 adds r3, #7 8006686: b29b uxth r3, r3 8006688: 2203 movs r2, #3 800668a: 4619 mov r1, r3 800668c: f7fe fb70 bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 8006690: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006694: 4849 ldr r0, [pc, #292] ; (80067bc ) 8006696: f7fd ff2f bl 80044f8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 800669a: 88fb ldrh r3, [r7, #6] 800669c: 3b0a subs r3, #10 800669e: b29b uxth r3, r3 80066a0: 88b9 ldrh r1, [r7, #4] 80066a2: 2203 movs r2, #3 80066a4: 4618 mov r0, r3 80066a6: f7fe fb63 bl 8004d70 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 80066aa: 88fb ldrh r3, [r7, #6] 80066ac: 3b07 subs r3, #7 80066ae: b298 uxth r0, r3 80066b0: 88bb ldrh r3, [r7, #4] 80066b2: 3b07 subs r3, #7 80066b4: b29b uxth r3, r3 80066b6: 2203 movs r2, #3 80066b8: 4619 mov r1, r3 80066ba: f7fe fb59 bl 8004d70 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 80066be: 88bb ldrh r3, [r7, #4] 80066c0: 3b0a subs r3, #10 80066c2: b299 uxth r1, r3 80066c4: 88fb ldrh r3, [r7, #6] 80066c6: 2203 movs r2, #3 80066c8: 4618 mov r0, r3 80066ca: f7fe fb51 bl 8004d70 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 80066ce: 88fb ldrh r3, [r7, #6] 80066d0: 3307 adds r3, #7 80066d2: b298 uxth r0, r3 80066d4: 88bb ldrh r3, [r7, #4] 80066d6: 3b07 subs r3, #7 80066d8: b29b uxth r3, r3 80066da: 2203 movs r2, #3 80066dc: 4619 mov r1, r3 80066de: f7fe fb47 bl 8004d70 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 80066e2: 88fb ldrh r3, [r7, #6] 80066e4: 330a adds r3, #10 80066e6: b29b uxth r3, r3 80066e8: 88b9 ldrh r1, [r7, #4] 80066ea: 2203 movs r2, #3 80066ec: 4618 mov r0, r3 80066ee: f7fe fb3f bl 8004d70 break; 80066f2: e241 b.n 8006b78 case 2: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 80066f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80066f8: f04f 30ff mov.w r0, #4294967295 80066fc: f7fd fefc bl 80044f8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 8006700: 88fb ldrh r3, [r7, #6] 8006702: 3b0a subs r3, #10 8006704: b29b uxth r3, r3 8006706: 88b9 ldrh r1, [r7, #4] 8006708: 2203 movs r2, #3 800670a: 4618 mov r0, r3 800670c: f7fe fb30 bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8006710: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006714: 4827 ldr r0, [pc, #156] ; (80067b4 ) 8006716: f7fd feef bl 80044f8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 800671a: 88fb ldrh r3, [r7, #6] 800671c: 3b07 subs r3, #7 800671e: b298 uxth r0, r3 8006720: 88bb ldrh r3, [r7, #4] 8006722: 3307 adds r3, #7 8006724: b29b uxth r3, r3 8006726: 2203 movs r2, #3 8006728: 4619 mov r1, r3 800672a: f7fe fb21 bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800672e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006732: 4821 ldr r0, [pc, #132] ; (80067b8 ) 8006734: f7fd fee0 bl 80044f8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 8006738: 88bb ldrh r3, [r7, #4] 800673a: 330a adds r3, #10 800673c: b299 uxth r1, r3 800673e: 88fb ldrh r3, [r7, #6] 8006740: 2203 movs r2, #3 8006742: 4618 mov r0, r3 8006744: f7fe fb14 bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 8006748: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800674c: 481b ldr r0, [pc, #108] ; (80067bc ) 800674e: f7fd fed3 bl 80044f8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 8006752: 88fb ldrh r3, [r7, #6] 8006754: 3b07 subs r3, #7 8006756: b298 uxth r0, r3 8006758: 88bb ldrh r3, [r7, #4] 800675a: 3b07 subs r3, #7 800675c: b29b uxth r3, r3 800675e: 2203 movs r2, #3 8006760: 4619 mov r1, r3 8006762: f7fe fb05 bl 8004d70 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 8006766: 88bb ldrh r3, [r7, #4] 8006768: 3b0a subs r3, #10 800676a: b299 uxth r1, r3 800676c: 88fb ldrh r3, [r7, #6] 800676e: 2203 movs r2, #3 8006770: 4618 mov r0, r3 8006772: f7fe fafd bl 8004d70 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 8006776: 88fb ldrh r3, [r7, #6] 8006778: 3307 adds r3, #7 800677a: b298 uxth r0, r3 800677c: 88bb ldrh r3, [r7, #4] 800677e: 3b07 subs r3, #7 8006780: b29b uxth r3, r3 8006782: 2203 movs r2, #3 8006784: 4619 mov r1, r3 8006786: f7fe faf3 bl 8004d70 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800678a: 88fb ldrh r3, [r7, #6] 800678c: 330a adds r3, #10 800678e: b29b uxth r3, r3 8006790: 88b9 ldrh r1, [r7, #4] 8006792: 2203 movs r2, #3 8006794: 4618 mov r0, r3 8006796: f7fe faeb bl 8004d70 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 800679a: 88fb ldrh r3, [r7, #6] 800679c: 3307 adds r3, #7 800679e: b298 uxth r0, r3 80067a0: 88bb ldrh r3, [r7, #4] 80067a2: 3307 adds r3, #7 80067a4: b29b uxth r3, r3 80067a6: 2203 movs r2, #3 80067a8: 4619 mov r1, r3 80067aa: f7fe fae1 bl 8004d70 break; 80067ae: e1e3 b.n 8006b78 80067b0: 2006b2e8 .word 0x2006b2e8 80067b4: ffd3d3d3 .word 0xffd3d3d3 80067b8: ff808080 .word 0xff808080 80067bc: ff404040 .word 0xff404040 case 3: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 80067c0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80067c4: f04f 30ff mov.w r0, #4294967295 80067c8: f7fd fe96 bl 80044f8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 80067cc: 88fb ldrh r3, [r7, #6] 80067ce: 3b07 subs r3, #7 80067d0: b298 uxth r0, r3 80067d2: 88bb ldrh r3, [r7, #4] 80067d4: 3b07 subs r3, #7 80067d6: b29b uxth r3, r3 80067d8: 2203 movs r2, #3 80067da: 4619 mov r1, r3 80067dc: f7fe fac8 bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 80067e0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80067e4: 48b2 ldr r0, [pc, #712] ; (8006ab0 ) 80067e6: f7fd fe87 bl 80044f8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 80067ea: 88fb ldrh r3, [r7, #6] 80067ec: 3b0a subs r3, #10 80067ee: b29b uxth r3, r3 80067f0: 88b9 ldrh r1, [r7, #4] 80067f2: 2203 movs r2, #3 80067f4: 4618 mov r0, r3 80067f6: f7fe fabb bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 80067fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80067fe: 48ad ldr r0, [pc, #692] ; (8006ab4 ) 8006800: f7fd fe7a bl 80044f8 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 8006804: 88fb ldrh r3, [r7, #6] 8006806: 3b07 subs r3, #7 8006808: b298 uxth r0, r3 800680a: 88bb ldrh r3, [r7, #4] 800680c: 3307 adds r3, #7 800680e: b29b uxth r3, r3 8006810: 2203 movs r2, #3 8006812: 4619 mov r1, r3 8006814: f7fe faac bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 8006818: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800681c: 48a6 ldr r0, [pc, #664] ; (8006ab8 ) 800681e: f7fd fe6b bl 80044f8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 8006822: 88bb ldrh r3, [r7, #4] 8006824: 3b0a subs r3, #10 8006826: b299 uxth r1, r3 8006828: 88fb ldrh r3, [r7, #6] 800682a: 2203 movs r2, #3 800682c: 4618 mov r0, r3 800682e: f7fe fa9f bl 8004d70 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 8006832: 88fb ldrh r3, [r7, #6] 8006834: 3307 adds r3, #7 8006836: b298 uxth r0, r3 8006838: 88bb ldrh r3, [r7, #4] 800683a: 3b07 subs r3, #7 800683c: b29b uxth r3, r3 800683e: 2203 movs r2, #3 8006840: 4619 mov r1, r3 8006842: f7fe fa95 bl 8004d70 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 8006846: 88fb ldrh r3, [r7, #6] 8006848: 330a adds r3, #10 800684a: b29b uxth r3, r3 800684c: 88b9 ldrh r1, [r7, #4] 800684e: 2203 movs r2, #3 8006850: 4618 mov r0, r3 8006852: f7fe fa8d bl 8004d70 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 8006856: 88fb ldrh r3, [r7, #6] 8006858: 3307 adds r3, #7 800685a: b298 uxth r0, r3 800685c: 88bb ldrh r3, [r7, #4] 800685e: 3307 adds r3, #7 8006860: b29b uxth r3, r3 8006862: 2203 movs r2, #3 8006864: 4619 mov r1, r3 8006866: f7fe fa83 bl 8004d70 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 800686a: 88bb ldrh r3, [r7, #4] 800686c: 330a adds r3, #10 800686e: b299 uxth r1, r3 8006870: 88fb ldrh r3, [r7, #6] 8006872: 2203 movs r2, #3 8006874: 4618 mov r0, r3 8006876: f7fe fa7b bl 8004d70 break; 800687a: e17d b.n 8006b78 case 4: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800687c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006880: f04f 30ff mov.w r0, #4294967295 8006884: f7fd fe38 bl 80044f8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 8006888: 88bb ldrh r3, [r7, #4] 800688a: 3b0a subs r3, #10 800688c: b299 uxth r1, r3 800688e: 88fb ldrh r3, [r7, #6] 8006890: 2203 movs r2, #3 8006892: 4618 mov r0, r3 8006894: f7fe fa6c bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8006898: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800689c: 4884 ldr r0, [pc, #528] ; (8006ab0 ) 800689e: f7fd fe2b bl 80044f8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 80068a2: 88fb ldrh r3, [r7, #6] 80068a4: 3b07 subs r3, #7 80068a6: b298 uxth r0, r3 80068a8: 88bb ldrh r3, [r7, #4] 80068aa: 3b07 subs r3, #7 80068ac: b29b uxth r3, r3 80068ae: 2203 movs r2, #3 80068b0: 4619 mov r1, r3 80068b2: f7fe fa5d bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 80068b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80068ba: 487e ldr r0, [pc, #504] ; (8006ab4 ) 80068bc: f7fd fe1c bl 80044f8 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 80068c0: 88fb ldrh r3, [r7, #6] 80068c2: 3b0a subs r3, #10 80068c4: b29b uxth r3, r3 80068c6: 88b9 ldrh r1, [r7, #4] 80068c8: 2203 movs r2, #3 80068ca: 4618 mov r0, r3 80068cc: f7fe fa50 bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 80068d0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80068d4: 4878 ldr r0, [pc, #480] ; (8006ab8 ) 80068d6: f7fd fe0f bl 80044f8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 80068da: 88fb ldrh r3, [r7, #6] 80068dc: 3307 adds r3, #7 80068de: b298 uxth r0, r3 80068e0: 88bb ldrh r3, [r7, #4] 80068e2: 3b07 subs r3, #7 80068e4: b29b uxth r3, r3 80068e6: 2203 movs r2, #3 80068e8: 4619 mov r1, r3 80068ea: f7fe fa41 bl 8004d70 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 80068ee: 88fb ldrh r3, [r7, #6] 80068f0: 330a adds r3, #10 80068f2: b29b uxth r3, r3 80068f4: 88b9 ldrh r1, [r7, #4] 80068f6: 2203 movs r2, #3 80068f8: 4618 mov r0, r3 80068fa: f7fe fa39 bl 8004d70 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 80068fe: 88fb ldrh r3, [r7, #6] 8006900: 3307 adds r3, #7 8006902: b298 uxth r0, r3 8006904: 88bb ldrh r3, [r7, #4] 8006906: 3307 adds r3, #7 8006908: b29b uxth r3, r3 800690a: 2203 movs r2, #3 800690c: 4619 mov r1, r3 800690e: f7fe fa2f bl 8004d70 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 8006912: 88bb ldrh r3, [r7, #4] 8006914: 330a adds r3, #10 8006916: b299 uxth r1, r3 8006918: 88fb ldrh r3, [r7, #6] 800691a: 2203 movs r2, #3 800691c: 4618 mov r0, r3 800691e: f7fe fa27 bl 8004d70 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 8006922: 88fb ldrh r3, [r7, #6] 8006924: 3b07 subs r3, #7 8006926: b298 uxth r0, r3 8006928: 88bb ldrh r3, [r7, #4] 800692a: 3307 adds r3, #7 800692c: b29b uxth r3, r3 800692e: 2203 movs r2, #3 8006930: 4619 mov r1, r3 8006932: f7fe fa1d bl 8004d70 break; 8006936: e11f b.n 8006b78 case 5: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006938: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800693c: f04f 30ff mov.w r0, #4294967295 8006940: f7fd fdda bl 80044f8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 8006944: 88fb ldrh r3, [r7, #6] 8006946: 3307 adds r3, #7 8006948: b298 uxth r0, r3 800694a: 88bb ldrh r3, [r7, #4] 800694c: 3b07 subs r3, #7 800694e: b29b uxth r3, r3 8006950: 2203 movs r2, #3 8006952: 4619 mov r1, r3 8006954: f7fe fa0c bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8006958: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800695c: 4854 ldr r0, [pc, #336] ; (8006ab0 ) 800695e: f7fd fdcb bl 80044f8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 8006962: 88bb ldrh r3, [r7, #4] 8006964: 3b0a subs r3, #10 8006966: b299 uxth r1, r3 8006968: 88fb ldrh r3, [r7, #6] 800696a: 2203 movs r2, #3 800696c: 4618 mov r0, r3 800696e: f7fe f9ff bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 8006972: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006976: 484f ldr r0, [pc, #316] ; (8006ab4 ) 8006978: f7fd fdbe bl 80044f8 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 800697c: 88fb ldrh r3, [r7, #6] 800697e: 3b07 subs r3, #7 8006980: b298 uxth r0, r3 8006982: 88bb ldrh r3, [r7, #4] 8006984: 3b07 subs r3, #7 8006986: b29b uxth r3, r3 8006988: 2203 movs r2, #3 800698a: 4619 mov r1, r3 800698c: f7fe f9f0 bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 8006990: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006994: 4848 ldr r0, [pc, #288] ; (8006ab8 ) 8006996: f7fd fdaf bl 80044f8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 800699a: 88fb ldrh r3, [r7, #6] 800699c: 330a adds r3, #10 800699e: b29b uxth r3, r3 80069a0: 88b9 ldrh r1, [r7, #4] 80069a2: 2203 movs r2, #3 80069a4: 4618 mov r0, r3 80069a6: f7fe f9e3 bl 8004d70 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 80069aa: 88fb ldrh r3, [r7, #6] 80069ac: 3307 adds r3, #7 80069ae: b298 uxth r0, r3 80069b0: 88bb ldrh r3, [r7, #4] 80069b2: 3307 adds r3, #7 80069b4: b29b uxth r3, r3 80069b6: 2203 movs r2, #3 80069b8: 4619 mov r1, r3 80069ba: f7fe f9d9 bl 8004d70 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 80069be: 88bb ldrh r3, [r7, #4] 80069c0: 330a adds r3, #10 80069c2: b299 uxth r1, r3 80069c4: 88fb ldrh r3, [r7, #6] 80069c6: 2203 movs r2, #3 80069c8: 4618 mov r0, r3 80069ca: f7fe f9d1 bl 8004d70 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 80069ce: 88fb ldrh r3, [r7, #6] 80069d0: 3b07 subs r3, #7 80069d2: b298 uxth r0, r3 80069d4: 88bb ldrh r3, [r7, #4] 80069d6: 3307 adds r3, #7 80069d8: b29b uxth r3, r3 80069da: 2203 movs r2, #3 80069dc: 4619 mov r1, r3 80069de: f7fe f9c7 bl 8004d70 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 80069e2: 88fb ldrh r3, [r7, #6] 80069e4: 3b0a subs r3, #10 80069e6: b29b uxth r3, r3 80069e8: 88b9 ldrh r1, [r7, #4] 80069ea: 2203 movs r2, #3 80069ec: 4618 mov r0, r3 80069ee: f7fe f9bf bl 8004d70 break; 80069f2: e0c1 b.n 8006b78 case 6: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 80069f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80069f8: f04f 30ff mov.w r0, #4294967295 80069fc: f7fd fd7c bl 80044f8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 8006a00: 88fb ldrh r3, [r7, #6] 8006a02: 330a adds r3, #10 8006a04: b29b uxth r3, r3 8006a06: 88b9 ldrh r1, [r7, #4] 8006a08: 2203 movs r2, #3 8006a0a: 4618 mov r0, r3 8006a0c: f7fe f9b0 bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8006a10: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006a14: 4826 ldr r0, [pc, #152] ; (8006ab0 ) 8006a16: f7fd fd6f bl 80044f8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 8006a1a: 88fb ldrh r3, [r7, #6] 8006a1c: 3307 adds r3, #7 8006a1e: b298 uxth r0, r3 8006a20: 88bb ldrh r3, [r7, #4] 8006a22: 3b07 subs r3, #7 8006a24: b29b uxth r3, r3 8006a26: 2203 movs r2, #3 8006a28: 4619 mov r1, r3 8006a2a: f7fe f9a1 bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 8006a2e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006a32: 4820 ldr r0, [pc, #128] ; (8006ab4 ) 8006a34: f7fd fd60 bl 80044f8 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 8006a38: 88bb ldrh r3, [r7, #4] 8006a3a: 3b0a subs r3, #10 8006a3c: b299 uxth r1, r3 8006a3e: 88fb ldrh r3, [r7, #6] 8006a40: 2203 movs r2, #3 8006a42: 4618 mov r0, r3 8006a44: f7fe f994 bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 8006a48: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006a4c: 481a ldr r0, [pc, #104] ; (8006ab8 ) 8006a4e: f7fd fd53 bl 80044f8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 8006a52: 88fb ldrh r3, [r7, #6] 8006a54: 3307 adds r3, #7 8006a56: b298 uxth r0, r3 8006a58: 88bb ldrh r3, [r7, #4] 8006a5a: 3307 adds r3, #7 8006a5c: b29b uxth r3, r3 8006a5e: 2203 movs r2, #3 8006a60: 4619 mov r1, r3 8006a62: f7fe f985 bl 8004d70 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 8006a66: 88bb ldrh r3, [r7, #4] 8006a68: 330a adds r3, #10 8006a6a: b299 uxth r1, r3 8006a6c: 88fb ldrh r3, [r7, #6] 8006a6e: 2203 movs r2, #3 8006a70: 4618 mov r0, r3 8006a72: f7fe f97d bl 8004d70 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 8006a76: 88fb ldrh r3, [r7, #6] 8006a78: 3b07 subs r3, #7 8006a7a: b298 uxth r0, r3 8006a7c: 88bb ldrh r3, [r7, #4] 8006a7e: 3307 adds r3, #7 8006a80: b29b uxth r3, r3 8006a82: 2203 movs r2, #3 8006a84: 4619 mov r1, r3 8006a86: f7fe f973 bl 8004d70 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 8006a8a: 88fb ldrh r3, [r7, #6] 8006a8c: 3b0a subs r3, #10 8006a8e: b29b uxth r3, r3 8006a90: 88b9 ldrh r1, [r7, #4] 8006a92: 2203 movs r2, #3 8006a94: 4618 mov r0, r3 8006a96: f7fe f96b bl 8004d70 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 8006a9a: 88fb ldrh r3, [r7, #6] 8006a9c: 3b07 subs r3, #7 8006a9e: b298 uxth r0, r3 8006aa0: 88bb ldrh r3, [r7, #4] 8006aa2: 3b07 subs r3, #7 8006aa4: b29b uxth r3, r3 8006aa6: 2203 movs r2, #3 8006aa8: 4619 mov r1, r3 8006aaa: f7fe f961 bl 8004d70 break; 8006aae: e063 b.n 8006b78 8006ab0: ffd3d3d3 .word 0xffd3d3d3 8006ab4: ff808080 .word 0xff808080 8006ab8: ff404040 .word 0xff404040 case 7: LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 8006abc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006ac0: f04f 30ff mov.w r0, #4294967295 8006ac4: f7fd fd18 bl 80044f8 BSP_LCD_FillCircle(x + 7, y + 7, 3);//1 8006ac8: 88fb ldrh r3, [r7, #6] 8006aca: 3307 adds r3, #7 8006acc: b298 uxth r0, r3 8006ace: 88bb ldrh r3, [r7, #4] 8006ad0: 3307 adds r3, #7 8006ad2: b29b uxth r3, r3 8006ad4: 2203 movs r2, #3 8006ad6: 4619 mov r1, r3 8006ad8: f7fe f94a bl 8004d70 LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK); 8006adc: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006ae0: 482d ldr r0, [pc, #180] ; (8006b98 ) 8006ae2: f7fd fd09 bl 80044f8 BSP_LCD_FillCircle(x + 10, y + 0, 3);//0 8006ae6: 88fb ldrh r3, [r7, #6] 8006ae8: 330a adds r3, #10 8006aea: b29b uxth r3, r3 8006aec: 88b9 ldrh r1, [r7, #4] 8006aee: 2203 movs r2, #3 8006af0: 4618 mov r0, r3 8006af2: f7fe f93d bl 8004d70 LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 8006af6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006afa: 4828 ldr r0, [pc, #160] ; (8006b9c ) 8006afc: f7fd fcfc bl 80044f8 BSP_LCD_FillCircle(x + 7, y - 7, 3);//7 8006b00: 88fb ldrh r3, [r7, #6] 8006b02: 3307 adds r3, #7 8006b04: b298 uxth r0, r3 8006b06: 88bb ldrh r3, [r7, #4] 8006b08: 3b07 subs r3, #7 8006b0a: b29b uxth r3, r3 8006b0c: 2203 movs r2, #3 8006b0e: 4619 mov r1, r3 8006b10: f7fe f92e bl 8004d70 LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK); 8006b14: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8006b18: 4821 ldr r0, [pc, #132] ; (8006ba0 ) 8006b1a: f7fd fced bl 80044f8 BSP_LCD_FillCircle(x + 0, y + 10, 3);//2 8006b1e: 88bb ldrh r3, [r7, #4] 8006b20: 330a adds r3, #10 8006b22: b299 uxth r1, r3 8006b24: 88fb ldrh r3, [r7, #6] 8006b26: 2203 movs r2, #3 8006b28: 4618 mov r0, r3 8006b2a: f7fe f921 bl 8004d70 BSP_LCD_FillCircle(x - 7, y + 7, 3);//3 8006b2e: 88fb ldrh r3, [r7, #6] 8006b30: 3b07 subs r3, #7 8006b32: b298 uxth r0, r3 8006b34: 88bb ldrh r3, [r7, #4] 8006b36: 3307 adds r3, #7 8006b38: b29b uxth r3, r3 8006b3a: 2203 movs r2, #3 8006b3c: 4619 mov r1, r3 8006b3e: f7fe f917 bl 8004d70 BSP_LCD_FillCircle(x - 10, y + 0, 3);//4 8006b42: 88fb ldrh r3, [r7, #6] 8006b44: 3b0a subs r3, #10 8006b46: b29b uxth r3, r3 8006b48: 88b9 ldrh r1, [r7, #4] 8006b4a: 2203 movs r2, #3 8006b4c: 4618 mov r0, r3 8006b4e: f7fe f90f bl 8004d70 BSP_LCD_FillCircle(x - 7, y - 7, 3);//5 8006b52: 88fb ldrh r3, [r7, #6] 8006b54: 3b07 subs r3, #7 8006b56: b298 uxth r0, r3 8006b58: 88bb ldrh r3, [r7, #4] 8006b5a: 3b07 subs r3, #7 8006b5c: b29b uxth r3, r3 8006b5e: 2203 movs r2, #3 8006b60: 4619 mov r1, r3 8006b62: f7fe f905 bl 8004d70 BSP_LCD_FillCircle(x + 0, y - 10, 3);//6 8006b66: 88bb ldrh r3, [r7, #4] 8006b68: 3b0a subs r3, #10 8006b6a: b299 uxth r1, r3 8006b6c: 88fb ldrh r3, [r7, #6] 8006b6e: 2203 movs r2, #3 8006b70: 4618 mov r0, r3 8006b72: f7fe f8fd bl 8004d70 break; 8006b76: bf00 nop } rotate++; 8006b78: 4b0a ldr r3, [pc, #40] ; (8006ba4 ) 8006b7a: 681b ldr r3, [r3, #0] 8006b7c: 3301 adds r3, #1 8006b7e: 4a09 ldr r2, [pc, #36] ; (8006ba4 ) 8006b80: 6013 str r3, [r2, #0] if(rotate >= 8) 8006b82: 4b08 ldr r3, [pc, #32] ; (8006ba4 ) 8006b84: 681b ldr r3, [r3, #0] 8006b86: 2b07 cmp r3, #7 8006b88: d902 bls.n 8006b90 rotate = 0; 8006b8a: 4b06 ldr r3, [pc, #24] ; (8006ba4 ) 8006b8c: 2200 movs r2, #0 8006b8e: 601a str r2, [r3, #0] } 8006b90: bf00 nop 8006b92: 3708 adds r7, #8 8006b94: 46bd mov sp, r7 8006b96: bd80 pop {r7, pc} 8006b98: ffd3d3d3 .word 0xffd3d3d3 8006b9c: ff808080 .word 0xff808080 8006ba0: ff404040 .word 0xff404040 8006ba4: 2006b2e8 .word 0x2006b2e8 08006ba8 : void DrawSpinner(uint16_t x, uint16_t y) { 8006ba8: b580 push {r7, lr} 8006baa: b082 sub sp, #8 8006bac: af00 add r7, sp, #0 8006bae: 4603 mov r3, r0 8006bb0: 460a mov r2, r1 8006bb2: 80fb strh r3, [r7, #6] 8006bb4: 4613 mov r3, r2 8006bb6: 80bb strh r3, [r7, #4] //if(!clbr) //{ spinner++; 8006bb8: 4b0b ldr r3, [pc, #44] ; (8006be8 ) 8006bba: 781b ldrb r3, [r3, #0] 8006bbc: 3301 adds r3, #1 8006bbe: b2da uxtb r2, r3 8006bc0: 4b09 ldr r3, [pc, #36] ; (8006be8 ) 8006bc2: 701a strb r2, [r3, #0] if(spinner >= 10) 8006bc4: 4b08 ldr r3, [pc, #32] ; (8006be8 ) 8006bc6: 781b ldrb r3, [r3, #0] 8006bc8: 2b09 cmp r3, #9 8006bca: d902 bls.n 8006bd2 spinner = 0; 8006bcc: 4b06 ldr r3, [pc, #24] ; (8006be8 ) 8006bce: 2200 movs r2, #0 8006bd0: 701a strb r2, [r3, #0] DrawMySpinner(x, y); 8006bd2: 88ba ldrh r2, [r7, #4] 8006bd4: 88fb ldrh r3, [r7, #6] 8006bd6: 4611 mov r1, r2 8006bd8: 4618 mov r0, r3 8006bda: f7ff fcaf bl 800653c //} } 8006bde: bf00 nop 8006be0: 3708 adds r7, #8 8006be2: 46bd mov sp, r7 8006be4: bd80 pop {r7, pc} 8006be6: bf00 nop 8006be8: 2006b2dd .word 0x2006b2dd 08006bec : } void DrawChannel_4(uint8_t ch, uint32_t blk) { 8006bec: b5b0 push {r4, r5, r7, lr} 8006bee: b08e sub sp, #56 ; 0x38 8006bf0: af00 add r7, sp, #0 8006bf2: 4603 mov r3, r0 8006bf4: 6039 str r1, [r7, #0] 8006bf6: 71fb strb r3, [r7, #7] //pardata.amplif[ch].SENS = 1000.0f; if(pardata.amplif[ch].SENS <= 0.0f) { 8006bf8: 79fb ldrb r3, [r7, #7] 8006bfa: 4ac1 ldr r2, [pc, #772] ; (8006f00 ) 8006bfc: 015b lsls r3, r3, #5 8006bfe: 4413 add r3, r2 8006c00: 3318 adds r3, #24 8006c02: edd3 7a00 vldr s15, [r3] 8006c06: eef5 7ac0 vcmpe.f32 s15, #0.0 8006c0a: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c0e: d80a bhi.n 8006c26 pardata.amplif[ch].SENS = 1.0f; 8006c10: 79fb ldrb r3, [r7, #7] 8006c12: 4abb ldr r2, [pc, #748] ; (8006f00 ) 8006c14: 015b lsls r3, r3, #5 8006c16: 4413 add r3, r2 8006c18: 3318 adds r3, #24 8006c1a: f04f 527e mov.w r2, #1065353216 ; 0x3f800000 8006c1e: 601a str r2, [r3, #0] s = 10000; 8006c20: f242 7310 movw r3, #10000 ; 0x2710 8006c24: 637b str r3, [r7, #52] ; 0x34 } if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) { 8006c26: 4bb7 ldr r3, [pc, #732] ; (8006f04 ) 8006c28: 681b ldr r3, [r3, #0] 8006c2a: 4ab5 ldr r2, [pc, #724] ; (8006f00 ) 8006c2c: 015b lsls r3, r3, #5 8006c2e: 4413 add r3, r2 8006c30: 3318 adds r3, #24 8006c32: edd3 7a00 vldr s15, [r3] 8006c36: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006c3a: eef4 7ac7 vcmpe.f32 s15, s14 8006c3e: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c42: d517 bpl.n 8006c74 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f); 8006c44: 4baf ldr r3, [pc, #700] ; (8006f04 ) 8006c46: 681b ldr r3, [r3, #0] 8006c48: 4aad ldr r2, [pc, #692] ; (8006f00 ) 8006c4a: 015b lsls r3, r3, #5 8006c4c: 4413 add r3, r2 8006c4e: 3318 adds r3, #24 8006c50: edd3 7a00 vldr s15, [r3] 8006c54: ed9f 7aac vldr s14, [pc, #688] ; 8006f08 8006c58: ee67 7a87 vmul.f32 s15, s15, s14 8006c5c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006c60: ee77 7a87 vadd.f32 s15, s15, s14 8006c64: eefc 7ae7 vcvt.u32.f32 s15, s15 8006c68: ee17 3a90 vmov r3, s15 8006c6c: 637b str r3, [r7, #52] ; 0x34 ipt = 4; 8006c6e: 2304 movs r3, #4 8006c70: 633b str r3, [r7, #48] ; 0x30 8006c72: e0b2 b.n 8006dda } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) { 8006c74: 4ba3 ldr r3, [pc, #652] ; (8006f04 ) 8006c76: 681b ldr r3, [r3, #0] 8006c78: 4aa1 ldr r2, [pc, #644] ; (8006f00 ) 8006c7a: 015b lsls r3, r3, #5 8006c7c: 4413 add r3, r2 8006c7e: 3318 adds r3, #24 8006c80: edd3 7a00 vldr s15, [r3] 8006c84: ed9f 7aa1 vldr s14, [pc, #644] ; 8006f0c 8006c88: eef4 7ac7 vcmpe.f32 s15, s14 8006c8c: eef1 fa10 vmrs APSR_nzcv, fpscr 8006c90: d517 bpl.n 8006cc2 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f); 8006c92: 4b9c ldr r3, [pc, #624] ; (8006f04 ) 8006c94: 681b ldr r3, [r3, #0] 8006c96: 4a9a ldr r2, [pc, #616] ; (8006f00 ) 8006c98: 015b lsls r3, r3, #5 8006c9a: 4413 add r3, r2 8006c9c: 3318 adds r3, #24 8006c9e: edd3 7a00 vldr s15, [r3] 8006ca2: ed9f 7a9b vldr s14, [pc, #620] ; 8006f10 8006ca6: ee67 7a87 vmul.f32 s15, s15, s14 8006caa: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006cae: ee77 7a87 vadd.f32 s15, s15, s14 8006cb2: eefc 7ae7 vcvt.u32.f32 s15, s15 8006cb6: ee17 3a90 vmov r3, s15 8006cba: 637b str r3, [r7, #52] ; 0x34 ipt = 3; 8006cbc: 2303 movs r3, #3 8006cbe: 633b str r3, [r7, #48] ; 0x30 8006cc0: e08b b.n 8006dda } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) { 8006cc2: 4b90 ldr r3, [pc, #576] ; (8006f04 ) 8006cc4: 681b ldr r3, [r3, #0] 8006cc6: 4a8e ldr r2, [pc, #568] ; (8006f00 ) 8006cc8: 015b lsls r3, r3, #5 8006cca: 4413 add r3, r2 8006ccc: 3318 adds r3, #24 8006cce: edd3 7a00 vldr s15, [r3] 8006cd2: ed9f 7a8f vldr s14, [pc, #572] ; 8006f10 8006cd6: eef4 7ac7 vcmpe.f32 s15, s14 8006cda: eef1 fa10 vmrs APSR_nzcv, fpscr 8006cde: d517 bpl.n 8006d10 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f); 8006ce0: 4b88 ldr r3, [pc, #544] ; (8006f04 ) 8006ce2: 681b ldr r3, [r3, #0] 8006ce4: 4a86 ldr r2, [pc, #536] ; (8006f00 ) 8006ce6: 015b lsls r3, r3, #5 8006ce8: 4413 add r3, r2 8006cea: 3318 adds r3, #24 8006cec: edd3 7a00 vldr s15, [r3] 8006cf0: ed9f 7a86 vldr s14, [pc, #536] ; 8006f0c 8006cf4: ee67 7a87 vmul.f32 s15, s15, s14 8006cf8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006cfc: ee77 7a87 vadd.f32 s15, s15, s14 8006d00: eefc 7ae7 vcvt.u32.f32 s15, s15 8006d04: ee17 3a90 vmov r3, s15 8006d08: 637b str r3, [r7, #52] ; 0x34 ipt = 2; 8006d0a: 2302 movs r3, #2 8006d0c: 633b str r3, [r7, #48] ; 0x30 8006d0e: e064 b.n 8006dda } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) { 8006d10: 4b7c ldr r3, [pc, #496] ; (8006f04 ) 8006d12: 681b ldr r3, [r3, #0] 8006d14: 4a7a ldr r2, [pc, #488] ; (8006f00 ) 8006d16: 015b lsls r3, r3, #5 8006d18: 4413 add r3, r2 8006d1a: 3318 adds r3, #24 8006d1c: edd3 7a00 vldr s15, [r3] 8006d20: ed9f 7a79 vldr s14, [pc, #484] ; 8006f08 8006d24: eef4 7ac7 vcmpe.f32 s15, s14 8006d28: eef1 fa10 vmrs APSR_nzcv, fpscr 8006d2c: d517 bpl.n 8006d5e s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f); 8006d2e: 4b75 ldr r3, [pc, #468] ; (8006f04 ) 8006d30: 681b ldr r3, [r3, #0] 8006d32: 4a73 ldr r2, [pc, #460] ; (8006f00 ) 8006d34: 015b lsls r3, r3, #5 8006d36: 4413 add r3, r2 8006d38: 3318 adds r3, #24 8006d3a: edd3 7a00 vldr s15, [r3] 8006d3e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006d42: ee67 7a87 vmul.f32 s15, s15, s14 8006d46: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006d4a: ee77 7a87 vadd.f32 s15, s15, s14 8006d4e: eefc 7ae7 vcvt.u32.f32 s15, s15 8006d52: ee17 3a90 vmov r3, s15 8006d56: 637b str r3, [r7, #52] ; 0x34 ipt = 1; 8006d58: 2301 movs r3, #1 8006d5a: 633b str r3, [r7, #48] ; 0x30 8006d5c: e03d b.n 8006dda } else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) { 8006d5e: 4b69 ldr r3, [pc, #420] ; (8006f04 ) 8006d60: 681b ldr r3, [r3, #0] 8006d62: 4a67 ldr r2, [pc, #412] ; (8006f00 ) 8006d64: 015b lsls r3, r3, #5 8006d66: 4413 add r3, r2 8006d68: 3318 adds r3, #24 8006d6a: edd3 7a00 vldr s15, [r3] 8006d6e: ed9f 7a69 vldr s14, [pc, #420] ; 8006f14 8006d72: eef4 7ac7 vcmpe.f32 s15, s14 8006d76: eef1 fa10 vmrs APSR_nzcv, fpscr 8006d7a: d513 bpl.n 8006da4 s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f); 8006d7c: 4b61 ldr r3, [pc, #388] ; (8006f04 ) 8006d7e: 681b ldr r3, [r3, #0] 8006d80: 4a5f ldr r2, [pc, #380] ; (8006f00 ) 8006d82: 015b lsls r3, r3, #5 8006d84: 4413 add r3, r2 8006d86: 3318 adds r3, #24 8006d88: edd3 7a00 vldr s15, [r3] 8006d8c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 8006d90: ee77 7a87 vadd.f32 s15, s15, s14 8006d94: eefc 7ae7 vcvt.u32.f32 s15, s15 8006d98: ee17 3a90 vmov r3, s15 8006d9c: 637b str r3, [r7, #52] ; 0x34 ipt = 0; 8006d9e: 2300 movs r3, #0 8006da0: 633b str r3, [r7, #48] ; 0x30 8006da2: e01a b.n 8006dda } else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) { 8006da4: 4b57 ldr r3, [pc, #348] ; (8006f04 ) 8006da6: 681b ldr r3, [r3, #0] 8006da8: 4a55 ldr r2, [pc, #340] ; (8006f00 ) 8006daa: 015b lsls r3, r3, #5 8006dac: 4413 add r3, r2 8006dae: 3318 adds r3, #24 8006db0: edd3 7a00 vldr s15, [r3] 8006db4: ed9f 7a57 vldr s14, [pc, #348] ; 8006f14 8006db8: eef4 7ac7 vcmpe.f32 s15, s14 8006dbc: eef1 fa10 vmrs APSR_nzcv, fpscr 8006dc0: db0b blt.n 8006dda pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f; 8006dc2: 4b50 ldr r3, [pc, #320] ; (8006f04 ) 8006dc4: 681b ldr r3, [r3, #0] 8006dc6: 4a4e ldr r2, [pc, #312] ; (8006f00 ) 8006dc8: 015b lsls r3, r3, #5 8006dca: 4413 add r3, r2 8006dcc: 3318 adds r3, #24 8006dce: 4a52 ldr r2, [pc, #328] ; (8006f18 ) 8006dd0: 601a str r2, [r3, #0] s = 99999; 8006dd2: 4b52 ldr r3, [pc, #328] ; (8006f1c ) 8006dd4: 637b str r3, [r7, #52] ; 0x34 ipt = 0; 8006dd6: 2300 movs r3, #0 8006dd8: 633b str r3, [r7, #48] ; 0x30 } ikdt = (s / 10000); 8006dda: 6b7b ldr r3, [r7, #52] ; 0x34 8006ddc: 4a50 ldr r2, [pc, #320] ; (8006f20 ) 8006dde: fba2 2303 umull r2, r3, r2, r3 8006de2: 0b5b lsrs r3, r3, #13 8006de4: 627b str r3, [r7, #36] ; 0x24 ikt = (s % 10000 / 1000); 8006de6: 6b7a ldr r2, [r7, #52] ; 0x34 8006de8: 4b4d ldr r3, [pc, #308] ; (8006f20 ) 8006dea: fba3 1302 umull r1, r3, r3, r2 8006dee: 0b5b lsrs r3, r3, #13 8006df0: f242 7110 movw r1, #10000 ; 0x2710 8006df4: fb01 f303 mul.w r3, r1, r3 8006df8: 1ad3 subs r3, r2, r3 8006dfa: 4a4a ldr r2, [pc, #296] ; (8006f24 ) 8006dfc: fba2 2303 umull r2, r3, r2, r3 8006e00: 099b lsrs r3, r3, #6 8006e02: 623b str r3, [r7, #32] iks = (s % 10000 % 1000 / 100); 8006e04: 6b7a ldr r2, [r7, #52] ; 0x34 8006e06: 4b46 ldr r3, [pc, #280] ; (8006f20 ) 8006e08: fba3 1302 umull r1, r3, r3, r2 8006e0c: 0b5b lsrs r3, r3, #13 8006e0e: f242 7110 movw r1, #10000 ; 0x2710 8006e12: fb01 f303 mul.w r3, r1, r3 8006e16: 1ad3 subs r3, r2, r3 8006e18: 4a42 ldr r2, [pc, #264] ; (8006f24 ) 8006e1a: fba2 1203 umull r1, r2, r2, r3 8006e1e: 0992 lsrs r2, r2, #6 8006e20: f44f 717a mov.w r1, #1000 ; 0x3e8 8006e24: fb01 f202 mul.w r2, r1, r2 8006e28: 1a9a subs r2, r3, r2 8006e2a: 4b3f ldr r3, [pc, #252] ; (8006f28 ) 8006e2c: fba3 2302 umull r2, r3, r3, r2 8006e30: 095b lsrs r3, r3, #5 8006e32: 61fb str r3, [r7, #28] ikd = (s % 10000 % 1000 % 100 / 10); 8006e34: 6b7b ldr r3, [r7, #52] ; 0x34 8006e36: 4a3a ldr r2, [pc, #232] ; (8006f20 ) 8006e38: fba2 1203 umull r1, r2, r2, r3 8006e3c: 0b52 lsrs r2, r2, #13 8006e3e: f242 7110 movw r1, #10000 ; 0x2710 8006e42: fb01 f202 mul.w r2, r1, r2 8006e46: 1a9a subs r2, r3, r2 8006e48: 4b36 ldr r3, [pc, #216] ; (8006f24 ) 8006e4a: fba3 1302 umull r1, r3, r3, r2 8006e4e: 099b lsrs r3, r3, #6 8006e50: f44f 717a mov.w r1, #1000 ; 0x3e8 8006e54: fb01 f303 mul.w r3, r1, r3 8006e58: 1ad3 subs r3, r2, r3 8006e5a: 4a33 ldr r2, [pc, #204] ; (8006f28 ) 8006e5c: fba2 1203 umull r1, r2, r2, r3 8006e60: 0952 lsrs r2, r2, #5 8006e62: 2164 movs r1, #100 ; 0x64 8006e64: fb01 f202 mul.w r2, r1, r2 8006e68: 1a9a subs r2, r3, r2 8006e6a: 4b30 ldr r3, [pc, #192] ; (8006f2c ) 8006e6c: fba3 2302 umull r2, r3, r3, r2 8006e70: 08db lsrs r3, r3, #3 8006e72: 61bb str r3, [r7, #24] ike = (s % 10000 % 1000 % 100 % 10); 8006e74: 6b7b ldr r3, [r7, #52] ; 0x34 8006e76: 4a2a ldr r2, [pc, #168] ; (8006f20 ) 8006e78: fba2 1203 umull r1, r2, r2, r3 8006e7c: 0b52 lsrs r2, r2, #13 8006e7e: f242 7110 movw r1, #10000 ; 0x2710 8006e82: fb01 f202 mul.w r2, r1, r2 8006e86: 1a9a subs r2, r3, r2 8006e88: 4b26 ldr r3, [pc, #152] ; (8006f24 ) 8006e8a: fba3 1302 umull r1, r3, r3, r2 8006e8e: 099b lsrs r3, r3, #6 8006e90: f44f 717a mov.w r1, #1000 ; 0x3e8 8006e94: fb01 f303 mul.w r3, r1, r3 8006e98: 1ad3 subs r3, r2, r3 8006e9a: 4a23 ldr r2, [pc, #140] ; (8006f28 ) 8006e9c: fba2 1203 umull r1, r2, r2, r3 8006ea0: 0952 lsrs r2, r2, #5 8006ea2: 2164 movs r1, #100 ; 0x64 8006ea4: fb01 f202 mul.w r2, r1, r2 8006ea8: 1a9a subs r2, r3, r2 8006eaa: 4b20 ldr r3, [pc, #128] ; (8006f2c ) 8006eac: fba3 1302 umull r1, r3, r3, r2 8006eb0: 08d9 lsrs r1, r3, #3 8006eb2: 460b mov r3, r1 8006eb4: 009b lsls r3, r3, #2 8006eb6: 440b add r3, r1 8006eb8: 005b lsls r3, r3, #1 8006eba: 1ad3 subs r3, r2, r3 8006ebc: 617b str r3, [r7, #20] p8 = str; 8006ebe: f107 0308 add.w r3, r7, #8 8006ec2: 62bb str r3, [r7, #40] ; 0x28 if(pardata.amplif[ch].SENS < 10.0f) { 8006ec4: 79fb ldrb r3, [r7, #7] 8006ec6: 4a0e ldr r2, [pc, #56] ; (8006f00 ) 8006ec8: 015b lsls r3, r3, #5 8006eca: 4413 add r3, r2 8006ecc: 3318 adds r3, #24 8006ece: edd3 7a00 vldr s15, [r3] 8006ed2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 8006ed6: eef4 7ac7 vcmpe.f32 s15, s14 8006eda: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ede: d527 bpl.n 8006f30 p8 = FloatToASCII(pardata.amplif[ch].SENS, -4); 8006ee0: 79fb ldrb r3, [r7, #7] 8006ee2: 4a07 ldr r2, [pc, #28] ; (8006f00 ) 8006ee4: 015b lsls r3, r3, #5 8006ee6: 4413 add r3, r2 8006ee8: 3318 adds r3, #24 8006eea: edd3 7a00 vldr s15, [r3] 8006eee: f06f 0003 mvn.w r0, #3 8006ef2: eeb0 0a67 vmov.f32 s0, s15 8006ef6: f004 fd37 bl 800b968 8006efa: 62b8 str r0, [r7, #40] ; 0x28 8006efc: e08a b.n 8007014 8006efe: bf00 nop 8006f00: 2006b510 .word 0x2006b510 8006f04: 2006b2d0 .word 0x2006b2d0 8006f08: 461c4000 .word 0x461c4000 8006f0c: 42c80000 .word 0x42c80000 8006f10: 447a0000 .word 0x447a0000 8006f14: 47c35000 .word 0x47c35000 8006f18: 47c34f80 .word 0x47c34f80 8006f1c: 0001869f .word 0x0001869f 8006f20: d1b71759 .word 0xd1b71759 8006f24: 10624dd3 .word 0x10624dd3 8006f28: 51eb851f .word 0x51eb851f 8006f2c: cccccccd .word 0xcccccccd } else if(pardata.amplif[ch].SENS < 100.0f) { 8006f30: 79fb ldrb r3, [r7, #7] 8006f32: 4abf ldr r2, [pc, #764] ; (8007230 ) 8006f34: 015b lsls r3, r3, #5 8006f36: 4413 add r3, r2 8006f38: 3318 adds r3, #24 8006f3a: edd3 7a00 vldr s15, [r3] 8006f3e: ed9f 7abd vldr s14, [pc, #756] ; 8007234 8006f42: eef4 7ac7 vcmpe.f32 s15, s14 8006f46: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f4a: d50e bpl.n 8006f6a p8 = FloatToASCII(pardata.amplif[ch].SENS, -3); 8006f4c: 79fb ldrb r3, [r7, #7] 8006f4e: 4ab8 ldr r2, [pc, #736] ; (8007230 ) 8006f50: 015b lsls r3, r3, #5 8006f52: 4413 add r3, r2 8006f54: 3318 adds r3, #24 8006f56: edd3 7a00 vldr s15, [r3] 8006f5a: f06f 0002 mvn.w r0, #2 8006f5e: eeb0 0a67 vmov.f32 s0, s15 8006f62: f004 fd01 bl 800b968 8006f66: 62b8 str r0, [r7, #40] ; 0x28 8006f68: e054 b.n 8007014 } else if(pardata.amplif[ch].SENS < 1000.0f) { 8006f6a: 79fb ldrb r3, [r7, #7] 8006f6c: 4ab0 ldr r2, [pc, #704] ; (8007230 ) 8006f6e: 015b lsls r3, r3, #5 8006f70: 4413 add r3, r2 8006f72: 3318 adds r3, #24 8006f74: edd3 7a00 vldr s15, [r3] 8006f78: ed9f 7aaf vldr s14, [pc, #700] ; 8007238 8006f7c: eef4 7ac7 vcmpe.f32 s15, s14 8006f80: eef1 fa10 vmrs APSR_nzcv, fpscr 8006f84: d50e bpl.n 8006fa4 p8 = FloatToASCII(pardata.amplif[ch].SENS, -2); 8006f86: 79fb ldrb r3, [r7, #7] 8006f88: 4aa9 ldr r2, [pc, #676] ; (8007230 ) 8006f8a: 015b lsls r3, r3, #5 8006f8c: 4413 add r3, r2 8006f8e: 3318 adds r3, #24 8006f90: edd3 7a00 vldr s15, [r3] 8006f94: f06f 0001 mvn.w r0, #1 8006f98: eeb0 0a67 vmov.f32 s0, s15 8006f9c: f004 fce4 bl 800b968 8006fa0: 62b8 str r0, [r7, #40] ; 0x28 8006fa2: e037 b.n 8007014 } else if(pardata.amplif[ch].SENS < 10000.0f) { 8006fa4: 79fb ldrb r3, [r7, #7] 8006fa6: 4aa2 ldr r2, [pc, #648] ; (8007230 ) 8006fa8: 015b lsls r3, r3, #5 8006faa: 4413 add r3, r2 8006fac: 3318 adds r3, #24 8006fae: edd3 7a00 vldr s15, [r3] 8006fb2: ed9f 7aa2 vldr s14, [pc, #648] ; 800723c 8006fb6: eef4 7ac7 vcmpe.f32 s15, s14 8006fba: eef1 fa10 vmrs APSR_nzcv, fpscr 8006fbe: d50e bpl.n 8006fde p8 = FloatToASCII(pardata.amplif[ch].SENS, -1); 8006fc0: 79fb ldrb r3, [r7, #7] 8006fc2: 4a9b ldr r2, [pc, #620] ; (8007230 ) 8006fc4: 015b lsls r3, r3, #5 8006fc6: 4413 add r3, r2 8006fc8: 3318 adds r3, #24 8006fca: edd3 7a00 vldr s15, [r3] 8006fce: f04f 30ff mov.w r0, #4294967295 8006fd2: eeb0 0a67 vmov.f32 s0, s15 8006fd6: f004 fcc7 bl 800b968 8006fda: 62b8 str r0, [r7, #40] ; 0x28 8006fdc: e01a b.n 8007014 } else if(pardata.amplif[ch].SENS < 100000.0f) { 8006fde: 79fb ldrb r3, [r7, #7] 8006fe0: 4a93 ldr r2, [pc, #588] ; (8007230 ) 8006fe2: 015b lsls r3, r3, #5 8006fe4: 4413 add r3, r2 8006fe6: 3318 adds r3, #24 8006fe8: edd3 7a00 vldr s15, [r3] 8006fec: ed9f 7a94 vldr s14, [pc, #592] ; 8007240 8006ff0: eef4 7ac7 vcmpe.f32 s15, s14 8006ff4: eef1 fa10 vmrs APSR_nzcv, fpscr 8006ff8: d50c bpl.n 8007014 p8 = FloatToASCII(pardata.amplif[ch].SENS, 0); 8006ffa: 79fb ldrb r3, [r7, #7] 8006ffc: 4a8c ldr r2, [pc, #560] ; (8007230 ) 8006ffe: 015b lsls r3, r3, #5 8007000: 4413 add r3, r2 8007002: 3318 adds r3, #24 8007004: edd3 7a00 vldr s15, [r3] 8007008: 2000 movs r0, #0 800700a: eeb0 0a67 vmov.f32 s0, s15 800700e: f004 fcab bl 800b968 8007012: 62b8 str r0, [r7, #40] ; 0x28 } strcpy((void *) str, (void *) p8); 8007014: f107 0308 add.w r3, r7, #8 8007018: 6ab9 ldr r1, [r7, #40] ; 0x28 800701a: 4618 mov r0, r3 800701c: f00b f983 bl 8012326 ////////////////////////////////////////////////////////////////////////////////////// if(pardata.amplif[ch].SENS <= 0.0010f) //0.001 8007020: 79fb ldrb r3, [r7, #7] 8007022: 4a83 ldr r2, [pc, #524] ; (8007230 ) 8007024: 015b lsls r3, r3, #5 8007026: 4413 add r3, r2 8007028: 3318 adds r3, #24 800702a: edd3 7a00 vldr s15, [r3] 800702e: ed9f 7a85 vldr s14, [pc, #532] ; 8007244 8007032: eef4 7ac7 vcmpe.f32 s15, s14 8007036: eef1 fa10 vmrs APSR_nzcv, fpscr 800703a: d808 bhi.n 800704e { out = pardata.amplif[ch].IKU; 800703c: 79fb ldrb r3, [r7, #7] 800703e: 4a7c ldr r2, [pc, #496] ; (8007230 ) 8007040: 015b lsls r3, r3, #5 8007042: 4413 add r3, r2 8007044: 3306 adds r3, #6 8007046: 881b ldrh r3, [r3, #0] 8007048: b29b uxth r3, r3 800704a: 62fb str r3, [r7, #44] ; 0x2c 800704c: e26f b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.0011f && */pardata.amplif[ch].SENS <= 0.0020f) //0.002 800704e: 79fb ldrb r3, [r7, #7] 8007050: 4a77 ldr r2, [pc, #476] ; (8007230 ) 8007052: 015b lsls r3, r3, #5 8007054: 4413 add r3, r2 8007056: 3318 adds r3, #24 8007058: edd3 7a00 vldr s15, [r3] 800705c: ed9f 7a7a vldr s14, [pc, #488] ; 8007248 8007060: eef4 7ac7 vcmpe.f32 s15, s14 8007064: eef1 fa10 vmrs APSR_nzcv, fpscr 8007068: d809 bhi.n 800707e { out = pardata.amplif[ch].IKU + 1; 800706a: 79fb ldrb r3, [r7, #7] 800706c: 4a70 ldr r2, [pc, #448] ; (8007230 ) 800706e: 015b lsls r3, r3, #5 8007070: 4413 add r3, r2 8007072: 3306 adds r3, #6 8007074: 881b ldrh r3, [r3, #0] 8007076: b29b uxth r3, r3 8007078: 3301 adds r3, #1 800707a: 62fb str r3, [r7, #44] ; 0x2c 800707c: e257 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.0021f && */pardata.amplif[ch].SENS <= 0.0050f) //0.005 800707e: 79fb ldrb r3, [r7, #7] 8007080: 4a6b ldr r2, [pc, #428] ; (8007230 ) 8007082: 015b lsls r3, r3, #5 8007084: 4413 add r3, r2 8007086: 3318 adds r3, #24 8007088: edd3 7a00 vldr s15, [r3] 800708c: ed9f 7a6f vldr s14, [pc, #444] ; 800724c 8007090: eef4 7ac7 vcmpe.f32 s15, s14 8007094: eef1 fa10 vmrs APSR_nzcv, fpscr 8007098: d809 bhi.n 80070ae { out = pardata.amplif[ch].IKU + 2; 800709a: 79fb ldrb r3, [r7, #7] 800709c: 4a64 ldr r2, [pc, #400] ; (8007230 ) 800709e: 015b lsls r3, r3, #5 80070a0: 4413 add r3, r2 80070a2: 3306 adds r3, #6 80070a4: 881b ldrh r3, [r3, #0] 80070a6: b29b uxth r3, r3 80070a8: 3302 adds r3, #2 80070aa: 62fb str r3, [r7, #44] ; 0x2c 80070ac: e23f b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.0051f && */pardata.amplif[ch].SENS <= 0.0100f) //0.01 80070ae: 79fb ldrb r3, [r7, #7] 80070b0: 4a5f ldr r2, [pc, #380] ; (8007230 ) 80070b2: 015b lsls r3, r3, #5 80070b4: 4413 add r3, r2 80070b6: 3318 adds r3, #24 80070b8: edd3 7a00 vldr s15, [r3] 80070bc: ed9f 7a64 vldr s14, [pc, #400] ; 8007250 80070c0: eef4 7ac7 vcmpe.f32 s15, s14 80070c4: eef1 fa10 vmrs APSR_nzcv, fpscr 80070c8: d809 bhi.n 80070de { out = pardata.amplif[ch].IKU + 3; 80070ca: 79fb ldrb r3, [r7, #7] 80070cc: 4a58 ldr r2, [pc, #352] ; (8007230 ) 80070ce: 015b lsls r3, r3, #5 80070d0: 4413 add r3, r2 80070d2: 3306 adds r3, #6 80070d4: 881b ldrh r3, [r3, #0] 80070d6: b29b uxth r3, r3 80070d8: 3303 adds r3, #3 80070da: 62fb str r3, [r7, #44] ; 0x2c 80070dc: e227 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.0101f && */pardata.amplif[ch].SENS <= 0.0200f) //0.02 80070de: 79fb ldrb r3, [r7, #7] 80070e0: 4a53 ldr r2, [pc, #332] ; (8007230 ) 80070e2: 015b lsls r3, r3, #5 80070e4: 4413 add r3, r2 80070e6: 3318 adds r3, #24 80070e8: edd3 7a00 vldr s15, [r3] 80070ec: ed9f 7a59 vldr s14, [pc, #356] ; 8007254 80070f0: eef4 7ac7 vcmpe.f32 s15, s14 80070f4: eef1 fa10 vmrs APSR_nzcv, fpscr 80070f8: d809 bhi.n 800710e { out = pardata.amplif[ch].IKU + 4; 80070fa: 79fb ldrb r3, [r7, #7] 80070fc: 4a4c ldr r2, [pc, #304] ; (8007230 ) 80070fe: 015b lsls r3, r3, #5 8007100: 4413 add r3, r2 8007102: 3306 adds r3, #6 8007104: 881b ldrh r3, [r3, #0] 8007106: b29b uxth r3, r3 8007108: 3304 adds r3, #4 800710a: 62fb str r3, [r7, #44] ; 0x2c 800710c: e20f b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.0201f && */pardata.amplif[ch].SENS <= 0.0500f) //0.05 800710e: 79fb ldrb r3, [r7, #7] 8007110: 4a47 ldr r2, [pc, #284] ; (8007230 ) 8007112: 015b lsls r3, r3, #5 8007114: 4413 add r3, r2 8007116: 3318 adds r3, #24 8007118: edd3 7a00 vldr s15, [r3] 800711c: ed9f 7a4e vldr s14, [pc, #312] ; 8007258 8007120: eef4 7ac7 vcmpe.f32 s15, s14 8007124: eef1 fa10 vmrs APSR_nzcv, fpscr 8007128: d809 bhi.n 800713e { out = pardata.amplif[ch].IKU + 5; 800712a: 79fb ldrb r3, [r7, #7] 800712c: 4a40 ldr r2, [pc, #256] ; (8007230 ) 800712e: 015b lsls r3, r3, #5 8007130: 4413 add r3, r2 8007132: 3306 adds r3, #6 8007134: 881b ldrh r3, [r3, #0] 8007136: b29b uxth r3, r3 8007138: 3305 adds r3, #5 800713a: 62fb str r3, [r7, #44] ; 0x2c 800713c: e1f7 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.0501f && */pardata.amplif[ch].SENS <= 0.1000f) //0.1 800713e: 79fb ldrb r3, [r7, #7] 8007140: 4a3b ldr r2, [pc, #236] ; (8007230 ) 8007142: 015b lsls r3, r3, #5 8007144: 4413 add r3, r2 8007146: 3318 adds r3, #24 8007148: edd3 7a00 vldr s15, [r3] 800714c: ed9f 7a43 vldr s14, [pc, #268] ; 800725c 8007150: eef4 7ac7 vcmpe.f32 s15, s14 8007154: eef1 fa10 vmrs APSR_nzcv, fpscr 8007158: d809 bhi.n 800716e { out = pardata.amplif[ch].IKU + 6; 800715a: 79fb ldrb r3, [r7, #7] 800715c: 4a34 ldr r2, [pc, #208] ; (8007230 ) 800715e: 015b lsls r3, r3, #5 8007160: 4413 add r3, r2 8007162: 3306 adds r3, #6 8007164: 881b ldrh r3, [r3, #0] 8007166: b29b uxth r3, r3 8007168: 3306 adds r3, #6 800716a: 62fb str r3, [r7, #44] ; 0x2c 800716c: e1df b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.1001f && */pardata.amplif[ch].SENS <= 0.2000f) //0.2 800716e: 79fb ldrb r3, [r7, #7] 8007170: 4a2f ldr r2, [pc, #188] ; (8007230 ) 8007172: 015b lsls r3, r3, #5 8007174: 4413 add r3, r2 8007176: 3318 adds r3, #24 8007178: edd3 7a00 vldr s15, [r3] 800717c: ed9f 7a38 vldr s14, [pc, #224] ; 8007260 8007180: eef4 7ac7 vcmpe.f32 s15, s14 8007184: eef1 fa10 vmrs APSR_nzcv, fpscr 8007188: d809 bhi.n 800719e { out = pardata.amplif[ch].IKU + 7; 800718a: 79fb ldrb r3, [r7, #7] 800718c: 4a28 ldr r2, [pc, #160] ; (8007230 ) 800718e: 015b lsls r3, r3, #5 8007190: 4413 add r3, r2 8007192: 3306 adds r3, #6 8007194: 881b ldrh r3, [r3, #0] 8007196: b29b uxth r3, r3 8007198: 3307 adds r3, #7 800719a: 62fb str r3, [r7, #44] ; 0x2c 800719c: e1c7 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.2001f && */pardata.amplif[ch].SENS <= 0.5000f) //0.5 800719e: 79fb ldrb r3, [r7, #7] 80071a0: 4a23 ldr r2, [pc, #140] ; (8007230 ) 80071a2: 015b lsls r3, r3, #5 80071a4: 4413 add r3, r2 80071a6: 3318 adds r3, #24 80071a8: edd3 7a00 vldr s15, [r3] 80071ac: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5 80071b0: eef4 7ac7 vcmpe.f32 s15, s14 80071b4: eef1 fa10 vmrs APSR_nzcv, fpscr 80071b8: d809 bhi.n 80071ce { out = pardata.amplif[ch].IKU + 8; 80071ba: 79fb ldrb r3, [r7, #7] 80071bc: 4a1c ldr r2, [pc, #112] ; (8007230 ) 80071be: 015b lsls r3, r3, #5 80071c0: 4413 add r3, r2 80071c2: 3306 adds r3, #6 80071c4: 881b ldrh r3, [r3, #0] 80071c6: b29b uxth r3, r3 80071c8: 3308 adds r3, #8 80071ca: 62fb str r3, [r7, #44] ; 0x2c 80071cc: e1af b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 0.5001f && */pardata.amplif[ch].SENS <= 1.0000f) //1 80071ce: 79fb ldrb r3, [r7, #7] 80071d0: 4a17 ldr r2, [pc, #92] ; (8007230 ) 80071d2: 015b lsls r3, r3, #5 80071d4: 4413 add r3, r2 80071d6: 3318 adds r3, #24 80071d8: edd3 7a00 vldr s15, [r3] 80071dc: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 80071e0: eef4 7ac7 vcmpe.f32 s15, s14 80071e4: eef1 fa10 vmrs APSR_nzcv, fpscr 80071e8: d809 bhi.n 80071fe { out = pardata.amplif[ch].IKU + 9; 80071ea: 79fb ldrb r3, [r7, #7] 80071ec: 4a10 ldr r2, [pc, #64] ; (8007230 ) 80071ee: 015b lsls r3, r3, #5 80071f0: 4413 add r3, r2 80071f2: 3306 adds r3, #6 80071f4: 881b ldrh r3, [r3, #0] 80071f6: b29b uxth r3, r3 80071f8: 3309 adds r3, #9 80071fa: 62fb str r3, [r7, #44] ; 0x2c 80071fc: e197 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 1.0001f && */pardata.amplif[ch].SENS <= 2.0000f) //2 80071fe: 79fb ldrb r3, [r7, #7] 8007200: 4a0b ldr r2, [pc, #44] ; (8007230 ) 8007202: 015b lsls r3, r3, #5 8007204: 4413 add r3, r2 8007206: 3318 adds r3, #24 8007208: edd3 7a00 vldr s15, [r3] 800720c: eeb0 7a00 vmov.f32 s14, #0 ; 0x40000000 2.0 8007210: eef4 7ac7 vcmpe.f32 s15, s14 8007214: eef1 fa10 vmrs APSR_nzcv, fpscr 8007218: d824 bhi.n 8007264 { out = pardata.amplif[ch].IKU + 10; 800721a: 79fb ldrb r3, [r7, #7] 800721c: 4a04 ldr r2, [pc, #16] ; (8007230 ) 800721e: 015b lsls r3, r3, #5 8007220: 4413 add r3, r2 8007222: 3306 adds r3, #6 8007224: 881b ldrh r3, [r3, #0] 8007226: b29b uxth r3, r3 8007228: 330a adds r3, #10 800722a: 62fb str r3, [r7, #44] ; 0x2c 800722c: e17f b.n 800752e 800722e: bf00 nop 8007230: 2006b510 .word 0x2006b510 8007234: 42c80000 .word 0x42c80000 8007238: 447a0000 .word 0x447a0000 800723c: 461c4000 .word 0x461c4000 8007240: 47c35000 .word 0x47c35000 8007244: 3a83126f .word 0x3a83126f 8007248: 3b03126f .word 0x3b03126f 800724c: 3ba3d70a .word 0x3ba3d70a 8007250: 3c23d70a .word 0x3c23d70a 8007254: 3ca3d70a .word 0x3ca3d70a 8007258: 3d4ccccd .word 0x3d4ccccd 800725c: 3dcccccd .word 0x3dcccccd 8007260: 3e4ccccd .word 0x3e4ccccd } else if(/*pardata.amplif[ch].SENS >= 2.0001f && */pardata.amplif[ch].SENS <= 5.0000f) //5 8007264: 79fb ldrb r3, [r7, #7] 8007266: 4a9b ldr r2, [pc, #620] ; (80074d4 ) 8007268: 015b lsls r3, r3, #5 800726a: 4413 add r3, r2 800726c: 3318 adds r3, #24 800726e: edd3 7a00 vldr s15, [r3] 8007272: eeb1 7a04 vmov.f32 s14, #20 ; 0x40a00000 5.0 8007276: eef4 7ac7 vcmpe.f32 s15, s14 800727a: eef1 fa10 vmrs APSR_nzcv, fpscr 800727e: d809 bhi.n 8007294 { out = pardata.amplif[ch].IKU + 11; 8007280: 79fb ldrb r3, [r7, #7] 8007282: 4a94 ldr r2, [pc, #592] ; (80074d4 ) 8007284: 015b lsls r3, r3, #5 8007286: 4413 add r3, r2 8007288: 3306 adds r3, #6 800728a: 881b ldrh r3, [r3, #0] 800728c: b29b uxth r3, r3 800728e: 330b adds r3, #11 8007290: 62fb str r3, [r7, #44] ; 0x2c 8007292: e14c b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 5.0001f && */pardata.amplif[ch].SENS <= 10.000f) //10 8007294: 79fb ldrb r3, [r7, #7] 8007296: 4a8f ldr r2, [pc, #572] ; (80074d4 ) 8007298: 015b lsls r3, r3, #5 800729a: 4413 add r3, r2 800729c: 3318 adds r3, #24 800729e: edd3 7a00 vldr s15, [r3] 80072a2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 80072a6: eef4 7ac7 vcmpe.f32 s15, s14 80072aa: eef1 fa10 vmrs APSR_nzcv, fpscr 80072ae: d809 bhi.n 80072c4 { out = pardata.amplif[ch].IKU + 12; 80072b0: 79fb ldrb r3, [r7, #7] 80072b2: 4a88 ldr r2, [pc, #544] ; (80074d4 ) 80072b4: 015b lsls r3, r3, #5 80072b6: 4413 add r3, r2 80072b8: 3306 adds r3, #6 80072ba: 881b ldrh r3, [r3, #0] 80072bc: b29b uxth r3, r3 80072be: 330c adds r3, #12 80072c0: 62fb str r3, [r7, #44] ; 0x2c 80072c2: e134 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 10.001f && */pardata.amplif[ch].SENS <= 20.000f) //20 80072c4: 79fb ldrb r3, [r7, #7] 80072c6: 4a83 ldr r2, [pc, #524] ; (80074d4 ) 80072c8: 015b lsls r3, r3, #5 80072ca: 4413 add r3, r2 80072cc: 3318 adds r3, #24 80072ce: edd3 7a00 vldr s15, [r3] 80072d2: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0 80072d6: eef4 7ac7 vcmpe.f32 s15, s14 80072da: eef1 fa10 vmrs APSR_nzcv, fpscr 80072de: d809 bhi.n 80072f4 { out = pardata.amplif[ch].IKU + 13; 80072e0: 79fb ldrb r3, [r7, #7] 80072e2: 4a7c ldr r2, [pc, #496] ; (80074d4 ) 80072e4: 015b lsls r3, r3, #5 80072e6: 4413 add r3, r2 80072e8: 3306 adds r3, #6 80072ea: 881b ldrh r3, [r3, #0] 80072ec: b29b uxth r3, r3 80072ee: 330d adds r3, #13 80072f0: 62fb str r3, [r7, #44] ; 0x2c 80072f2: e11c b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 20.001f && */pardata.amplif[ch].SENS <= 50.000f) //50 80072f4: 79fb ldrb r3, [r7, #7] 80072f6: 4a77 ldr r2, [pc, #476] ; (80074d4 ) 80072f8: 015b lsls r3, r3, #5 80072fa: 4413 add r3, r2 80072fc: 3318 adds r3, #24 80072fe: edd3 7a00 vldr s15, [r3] 8007302: ed9f 7a75 vldr s14, [pc, #468] ; 80074d8 8007306: eef4 7ac7 vcmpe.f32 s15, s14 800730a: eef1 fa10 vmrs APSR_nzcv, fpscr 800730e: d809 bhi.n 8007324 { out = pardata.amplif[ch].IKU + 14; 8007310: 79fb ldrb r3, [r7, #7] 8007312: 4a70 ldr r2, [pc, #448] ; (80074d4 ) 8007314: 015b lsls r3, r3, #5 8007316: 4413 add r3, r2 8007318: 3306 adds r3, #6 800731a: 881b ldrh r3, [r3, #0] 800731c: b29b uxth r3, r3 800731e: 330e adds r3, #14 8007320: 62fb str r3, [r7, #44] ; 0x2c 8007322: e104 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 50.001f && */pardata.amplif[ch].SENS <= 100.00f) //100 8007324: 79fb ldrb r3, [r7, #7] 8007326: 4a6b ldr r2, [pc, #428] ; (80074d4 ) 8007328: 015b lsls r3, r3, #5 800732a: 4413 add r3, r2 800732c: 3318 adds r3, #24 800732e: edd3 7a00 vldr s15, [r3] 8007332: ed9f 7a6a vldr s14, [pc, #424] ; 80074dc 8007336: eef4 7ac7 vcmpe.f32 s15, s14 800733a: eef1 fa10 vmrs APSR_nzcv, fpscr 800733e: d809 bhi.n 8007354 { out = pardata.amplif[ch].IKU + 15; 8007340: 79fb ldrb r3, [r7, #7] 8007342: 4a64 ldr r2, [pc, #400] ; (80074d4 ) 8007344: 015b lsls r3, r3, #5 8007346: 4413 add r3, r2 8007348: 3306 adds r3, #6 800734a: 881b ldrh r3, [r3, #0] 800734c: b29b uxth r3, r3 800734e: 330f adds r3, #15 8007350: 62fb str r3, [r7, #44] ; 0x2c 8007352: e0ec b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 100.01f && */pardata.amplif[ch].SENS <= 200.00f) //200 8007354: 79fb ldrb r3, [r7, #7] 8007356: 4a5f ldr r2, [pc, #380] ; (80074d4 ) 8007358: 015b lsls r3, r3, #5 800735a: 4413 add r3, r2 800735c: 3318 adds r3, #24 800735e: edd3 7a00 vldr s15, [r3] 8007362: ed9f 7a5f vldr s14, [pc, #380] ; 80074e0 8007366: eef4 7ac7 vcmpe.f32 s15, s14 800736a: eef1 fa10 vmrs APSR_nzcv, fpscr 800736e: d809 bhi.n 8007384 { out = pardata.amplif[ch].IKU + 16; 8007370: 79fb ldrb r3, [r7, #7] 8007372: 4a58 ldr r2, [pc, #352] ; (80074d4 ) 8007374: 015b lsls r3, r3, #5 8007376: 4413 add r3, r2 8007378: 3306 adds r3, #6 800737a: 881b ldrh r3, [r3, #0] 800737c: b29b uxth r3, r3 800737e: 3310 adds r3, #16 8007380: 62fb str r3, [r7, #44] ; 0x2c 8007382: e0d4 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 200.01f && */pardata.amplif[ch].SENS <= 500.00f) //500 8007384: 79fb ldrb r3, [r7, #7] 8007386: 4a53 ldr r2, [pc, #332] ; (80074d4 ) 8007388: 015b lsls r3, r3, #5 800738a: 4413 add r3, r2 800738c: 3318 adds r3, #24 800738e: edd3 7a00 vldr s15, [r3] 8007392: ed9f 7a54 vldr s14, [pc, #336] ; 80074e4 8007396: eef4 7ac7 vcmpe.f32 s15, s14 800739a: eef1 fa10 vmrs APSR_nzcv, fpscr 800739e: d809 bhi.n 80073b4 { out = pardata.amplif[ch].IKU + 17; 80073a0: 79fb ldrb r3, [r7, #7] 80073a2: 4a4c ldr r2, [pc, #304] ; (80074d4 ) 80073a4: 015b lsls r3, r3, #5 80073a6: 4413 add r3, r2 80073a8: 3306 adds r3, #6 80073aa: 881b ldrh r3, [r3, #0] 80073ac: b29b uxth r3, r3 80073ae: 3311 adds r3, #17 80073b0: 62fb str r3, [r7, #44] ; 0x2c 80073b2: e0bc b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 500.01f && */pardata.amplif[ch].SENS <= 1000.0f) //1000 80073b4: 79fb ldrb r3, [r7, #7] 80073b6: 4a47 ldr r2, [pc, #284] ; (80074d4 ) 80073b8: 015b lsls r3, r3, #5 80073ba: 4413 add r3, r2 80073bc: 3318 adds r3, #24 80073be: edd3 7a00 vldr s15, [r3] 80073c2: ed9f 7a49 vldr s14, [pc, #292] ; 80074e8 80073c6: eef4 7ac7 vcmpe.f32 s15, s14 80073ca: eef1 fa10 vmrs APSR_nzcv, fpscr 80073ce: d809 bhi.n 80073e4 { out = pardata.amplif[ch].IKU + 18; 80073d0: 79fb ldrb r3, [r7, #7] 80073d2: 4a40 ldr r2, [pc, #256] ; (80074d4 ) 80073d4: 015b lsls r3, r3, #5 80073d6: 4413 add r3, r2 80073d8: 3306 adds r3, #6 80073da: 881b ldrh r3, [r3, #0] 80073dc: b29b uxth r3, r3 80073de: 3312 adds r3, #18 80073e0: 62fb str r3, [r7, #44] ; 0x2c 80073e2: e0a4 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 1000.1f && */pardata.amplif[ch].SENS <= 2000.0f) //2000 80073e4: 79fb ldrb r3, [r7, #7] 80073e6: 4a3b ldr r2, [pc, #236] ; (80074d4 ) 80073e8: 015b lsls r3, r3, #5 80073ea: 4413 add r3, r2 80073ec: 3318 adds r3, #24 80073ee: edd3 7a00 vldr s15, [r3] 80073f2: ed9f 7a3e vldr s14, [pc, #248] ; 80074ec 80073f6: eef4 7ac7 vcmpe.f32 s15, s14 80073fa: eef1 fa10 vmrs APSR_nzcv, fpscr 80073fe: d809 bhi.n 8007414 { out = pardata.amplif[ch].IKU + 19; 8007400: 79fb ldrb r3, [r7, #7] 8007402: 4a34 ldr r2, [pc, #208] ; (80074d4 ) 8007404: 015b lsls r3, r3, #5 8007406: 4413 add r3, r2 8007408: 3306 adds r3, #6 800740a: 881b ldrh r3, [r3, #0] 800740c: b29b uxth r3, r3 800740e: 3313 adds r3, #19 8007410: 62fb str r3, [r7, #44] ; 0x2c 8007412: e08c b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 2000.1f && */pardata.amplif[ch].SENS <= 5000.0f) //2000 8007414: 79fb ldrb r3, [r7, #7] 8007416: 4a2f ldr r2, [pc, #188] ; (80074d4 ) 8007418: 015b lsls r3, r3, #5 800741a: 4413 add r3, r2 800741c: 3318 adds r3, #24 800741e: edd3 7a00 vldr s15, [r3] 8007422: ed9f 7a33 vldr s14, [pc, #204] ; 80074f0 8007426: eef4 7ac7 vcmpe.f32 s15, s14 800742a: eef1 fa10 vmrs APSR_nzcv, fpscr 800742e: d809 bhi.n 8007444 { out = pardata.amplif[ch].IKU + 20; 8007430: 79fb ldrb r3, [r7, #7] 8007432: 4a28 ldr r2, [pc, #160] ; (80074d4 ) 8007434: 015b lsls r3, r3, #5 8007436: 4413 add r3, r2 8007438: 3306 adds r3, #6 800743a: 881b ldrh r3, [r3, #0] 800743c: b29b uxth r3, r3 800743e: 3314 adds r3, #20 8007440: 62fb str r3, [r7, #44] ; 0x2c 8007442: e074 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 5000.1f && */pardata.amplif[ch].SENS <= 10000.0f) //10000 8007444: 79fb ldrb r3, [r7, #7] 8007446: 4a23 ldr r2, [pc, #140] ; (80074d4 ) 8007448: 015b lsls r3, r3, #5 800744a: 4413 add r3, r2 800744c: 3318 adds r3, #24 800744e: edd3 7a00 vldr s15, [r3] 8007452: ed9f 7a28 vldr s14, [pc, #160] ; 80074f4 8007456: eef4 7ac7 vcmpe.f32 s15, s14 800745a: eef1 fa10 vmrs APSR_nzcv, fpscr 800745e: d809 bhi.n 8007474 { out = pardata.amplif[ch].IKU + 21; 8007460: 79fb ldrb r3, [r7, #7] 8007462: 4a1c ldr r2, [pc, #112] ; (80074d4 ) 8007464: 015b lsls r3, r3, #5 8007466: 4413 add r3, r2 8007468: 3306 adds r3, #6 800746a: 881b ldrh r3, [r3, #0] 800746c: b29b uxth r3, r3 800746e: 3315 adds r3, #21 8007470: 62fb str r3, [r7, #44] ; 0x2c 8007472: e05c b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 10001 && */pardata.amplif[ch].SENS <= 20000.0f) //20000 8007474: 79fb ldrb r3, [r7, #7] 8007476: 4a17 ldr r2, [pc, #92] ; (80074d4 ) 8007478: 015b lsls r3, r3, #5 800747a: 4413 add r3, r2 800747c: 3318 adds r3, #24 800747e: edd3 7a00 vldr s15, [r3] 8007482: ed9f 7a1d vldr s14, [pc, #116] ; 80074f8 8007486: eef4 7ac7 vcmpe.f32 s15, s14 800748a: eef1 fa10 vmrs APSR_nzcv, fpscr 800748e: d809 bhi.n 80074a4 { out = pardata.amplif[ch].IKU + 22; 8007490: 79fb ldrb r3, [r7, #7] 8007492: 4a10 ldr r2, [pc, #64] ; (80074d4 ) 8007494: 015b lsls r3, r3, #5 8007496: 4413 add r3, r2 8007498: 3306 adds r3, #6 800749a: 881b ldrh r3, [r3, #0] 800749c: b29b uxth r3, r3 800749e: 3316 adds r3, #22 80074a0: 62fb str r3, [r7, #44] ; 0x2c 80074a2: e044 b.n 800752e } else if(/*pardata.amplif[ch].SENS >= 20001 && */pardata.amplif[ch].SENS <= 50000.0f) //50000 80074a4: 79fb ldrb r3, [r7, #7] 80074a6: 4a0b ldr r2, [pc, #44] ; (80074d4 ) 80074a8: 015b lsls r3, r3, #5 80074aa: 4413 add r3, r2 80074ac: 3318 adds r3, #24 80074ae: edd3 7a00 vldr s15, [r3] 80074b2: ed9f 7a12 vldr s14, [pc, #72] ; 80074fc 80074b6: eef4 7ac7 vcmpe.f32 s15, s14 80074ba: eef1 fa10 vmrs APSR_nzcv, fpscr 80074be: d81f bhi.n 8007500 { out = pardata.amplif[ch].IKU + 23; 80074c0: 79fb ldrb r3, [r7, #7] 80074c2: 4a04 ldr r2, [pc, #16] ; (80074d4 ) 80074c4: 015b lsls r3, r3, #5 80074c6: 4413 add r3, r2 80074c8: 3306 adds r3, #6 80074ca: 881b ldrh r3, [r3, #0] 80074cc: b29b uxth r3, r3 80074ce: 3317 adds r3, #23 80074d0: 62fb str r3, [r7, #44] ; 0x2c 80074d2: e02c b.n 800752e 80074d4: 2006b510 .word 0x2006b510 80074d8: 42480000 .word 0x42480000 80074dc: 42c80000 .word 0x42c80000 80074e0: 43480000 .word 0x43480000 80074e4: 43fa0000 .word 0x43fa0000 80074e8: 447a0000 .word 0x447a0000 80074ec: 44fa0000 .word 0x44fa0000 80074f0: 459c4000 .word 0x459c4000 80074f4: 461c4000 .word 0x461c4000 80074f8: 469c4000 .word 0x469c4000 80074fc: 47435000 .word 0x47435000 } else if(/*pardata.amplif[ch].SENS >= 50001 && */pardata.amplif[ch].SENS <= 100000) //100000 8007500: 79fb ldrb r3, [r7, #7] 8007502: 4a7e ldr r2, [pc, #504] ; (80076fc ) 8007504: 015b lsls r3, r3, #5 8007506: 4413 add r3, r2 8007508: 3318 adds r3, #24 800750a: edd3 7a00 vldr s15, [r3] 800750e: ed9f 7a7c vldr s14, [pc, #496] ; 8007700 8007512: eef4 7ac7 vcmpe.f32 s15, s14 8007516: eef1 fa10 vmrs APSR_nzcv, fpscr 800751a: d808 bhi.n 800752e { out = pardata.amplif[ch].IKU + 24; 800751c: 79fb ldrb r3, [r7, #7] 800751e: 4a77 ldr r2, [pc, #476] ; (80076fc ) 8007520: 015b lsls r3, r3, #5 8007522: 4413 add r3, r2 8007524: 3306 adds r3, #6 8007526: 881b ldrh r3, [r3, #0] 8007528: b29b uxth r3, r3 800752a: 3318 adds r3, #24 800752c: 62fb str r3, [r7, #44] ; 0x2c } if(menupos == Input) 800752e: 4b75 ldr r3, [pc, #468] ; (8007704 ) 8007530: 781b ldrb r3, [r3, #0] 8007532: b2db uxtb r3, r3 8007534: 2b00 cmp r3, #0 8007536: f040 81ba bne.w 80078ae { if(ACTIVE_CHANNEL == ch) 800753a: 79fa ldrb r2, [r7, #7] 800753c: 4b72 ldr r3, [pc, #456] ; (8007708 ) 800753e: 681b ldr r3, [r3, #0] 8007540: 429a cmp r2, r3 8007542: f040 8105 bne.w 8007750 { LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007546: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800754a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800754e: f7fc ffd3 bl 80044f8 if(focused) 8007552: 4b6e ldr r3, [pc, #440] ; (800770c ) 8007554: 781b ldrb r3, [r3, #0] 8007556: b2db uxtb r3, r3 8007558: 2b00 cmp r3, #0 800755a: d01f beq.n 800759c { if(blk) 800755c: 683b ldr r3, [r7, #0] 800755e: 2b00 cmp r3, #0 8007560: d038 beq.n 80075d4 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8007562: 79fb ldrb r3, [r7, #7] 8007564: 4a6a ldr r2, [pc, #424] ; (8007710 ) 8007566: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800756a: 79fb ldrb r3, [r7, #7] 800756c: 4a69 ldr r2, [pc, #420] ; (8007714 ) 800756e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007572: 4b62 ldr r3, [pc, #392] ; (80076fc ) 8007574: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007578: b29b uxth r3, r3 800757a: 461d mov r5, r3 800757c: 79fb ldrb r3, [r7, #7] 800757e: 4a5f ldr r2, [pc, #380] ; (80076fc ) 8007580: 015b lsls r3, r3, #5 8007582: 4413 add r3, r2 8007584: 881b ldrh r3, [r3, #0] 8007586: b29b uxth r3, r3 8007588: 461c mov r4, r3 800758a: 4a63 ldr r2, [pc, #396] ; (8007718 ) 800758c: 006b lsls r3, r5, #1 800758e: 4423 add r3, r4 8007590: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007594: 2303 movs r3, #3 8007596: f7fd f875 bl 8004684 800759a: e01b b.n 80075d4 } else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800759c: 79fb ldrb r3, [r7, #7] 800759e: 4a5c ldr r2, [pc, #368] ; (8007710 ) 80075a0: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80075a4: 79fb ldrb r3, [r7, #7] 80075a6: 4a5b ldr r2, [pc, #364] ; (8007714 ) 80075a8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80075ac: 4b53 ldr r3, [pc, #332] ; (80076fc ) 80075ae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80075b2: b29b uxth r3, r3 80075b4: 461d mov r5, r3 80075b6: 79fb ldrb r3, [r7, #7] 80075b8: 4a50 ldr r2, [pc, #320] ; (80076fc ) 80075ba: 015b lsls r3, r3, #5 80075bc: 4413 add r3, r2 80075be: 881b ldrh r3, [r3, #0] 80075c0: b29b uxth r3, r3 80075c2: 461c mov r4, r3 80075c4: 4a54 ldr r2, [pc, #336] ; (8007718 ) 80075c6: 006b lsls r3, r5, #1 80075c8: 4423 add r3, r4 80075ca: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80075ce: 2303 movs r3, #3 80075d0: f7fd f858 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80075d4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80075d8: 4850 ldr r0, [pc, #320] ; (800771c ) 80075da: f7fc ff8d bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 80075de: 79fb ldrb r3, [r7, #7] 80075e0: 4a4f ldr r2, [pc, #316] ; (8007720 ) 80075e2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80075e6: 79fb ldrb r3, [r7, #7] 80075e8: 4a4e ldr r2, [pc, #312] ; (8007724 ) 80075ea: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80075ee: 4b43 ldr r3, [pc, #268] ; (80076fc ) 80075f0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80075f4: b29b uxth r3, r3 80075f6: 4619 mov r1, r3 80075f8: 79fb ldrb r3, [r7, #7] 80075fa: 4a40 ldr r2, [pc, #256] ; (80076fc ) 80075fc: 015b lsls r3, r3, #5 80075fe: 4413 add r3, r2 8007600: 3302 adds r3, #2 8007602: 881b ldrh r3, [r3, #0] 8007604: b29b uxth r3, r3 8007606: 461d mov r5, r3 8007608: 4a47 ldr r2, [pc, #284] ; (8007728 ) 800760a: 460b mov r3, r1 800760c: 009b lsls r3, r3, #2 800760e: 440b add r3, r1 8007610: 442b add r3, r5 8007612: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007616: 2303 movs r3, #3 8007618: 4621 mov r1, r4 800761a: f7fd f833 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800761e: 79fb ldrb r3, [r7, #7] 8007620: 4a42 ldr r2, [pc, #264] ; (800772c ) 8007622: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007626: 79fb ldrb r3, [r7, #7] 8007628: 4a41 ldr r2, [pc, #260] ; (8007730 ) 800762a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800762e: 4b33 ldr r3, [pc, #204] ; (80076fc ) 8007630: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007634: b29b uxth r3, r3 8007636: 461d mov r5, r3 8007638: 79fb ldrb r3, [r7, #7] 800763a: 4a30 ldr r2, [pc, #192] ; (80076fc ) 800763c: 015b lsls r3, r3, #5 800763e: 4413 add r3, r2 8007640: 3304 adds r3, #4 8007642: 881b ldrh r3, [r3, #0] 8007644: b29b uxth r3, r3 8007646: 461c mov r4, r3 8007648: 4a3a ldr r2, [pc, #232] ; (8007734 ) 800764a: 00eb lsls r3, r5, #3 800764c: 4423 add r3, r4 800764e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007652: 2303 movs r3, #3 8007654: f7fd f816 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 8007658: 79fb ldrb r3, [r7, #7] 800765a: 4a37 ldr r2, [pc, #220] ; (8007738 ) 800765c: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007660: 79fb ldrb r3, [r7, #7] 8007662: 4a36 ldr r2, [pc, #216] ; (800773c ) 8007664: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007668: f107 0208 add.w r2, r7, #8 800766c: 2303 movs r3, #3 800766e: f7fd f809 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8007672: 79fb ldrb r3, [r7, #7] 8007674: 4a30 ldr r2, [pc, #192] ; (8007738 ) 8007676: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800767a: 332d adds r3, #45 ; 0x2d 800767c: b298 uxth r0, r3 800767e: 79fb ldrb r3, [r7, #7] 8007680: 4a2e ldr r2, [pc, #184] ; (800773c ) 8007682: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007686: 79fb ldrb r3, [r7, #7] 8007688: 4a1c ldr r2, [pc, #112] ; (80076fc ) 800768a: 015b lsls r3, r3, #5 800768c: 4413 add r3, r2 800768e: 881b ldrh r3, [r3, #0] 8007690: b29b uxth r3, r3 8007692: 4619 mov r1, r3 8007694: 79fb ldrb r3, [r7, #7] 8007696: 4a19 ldr r2, [pc, #100] ; (80076fc ) 8007698: 015b lsls r3, r3, #5 800769a: 4413 add r3, r2 800769c: 3312 adds r3, #18 800769e: 881b ldrh r3, [r3, #0] 80076a0: b29b uxth r3, r3 80076a2: 461d mov r5, r3 80076a4: 4a26 ldr r2, [pc, #152] ; (8007740 ) 80076a6: 460b mov r3, r1 80076a8: 005b lsls r3, r3, #1 80076aa: 440b add r3, r1 80076ac: 442b add r3, r5 80076ae: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80076b2: 2303 movs r3, #3 80076b4: 4621 mov r1, r4 80076b6: f7fc ffe5 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 80076ba: 79fb ldrb r3, [r7, #7] 80076bc: 4a21 ldr r2, [pc, #132] ; (8007744 ) 80076be: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80076c2: 79fb ldrb r3, [r7, #7] 80076c4: 4a20 ldr r2, [pc, #128] ; (8007748 ) 80076c6: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80076ca: 79fb ldrb r3, [r7, #7] 80076cc: 4a0b ldr r2, [pc, #44] ; (80076fc ) 80076ce: 015b lsls r3, r3, #5 80076d0: 4413 add r3, r2 80076d2: 3312 adds r3, #18 80076d4: 881b ldrh r3, [r3, #0] 80076d6: b29b uxth r3, r3 80076d8: 461a mov r2, r3 80076da: 491c ldr r1, [pc, #112] ; (800774c ) 80076dc: 4613 mov r3, r2 80076de: 009b lsls r3, r3, #2 80076e0: 4413 add r3, r2 80076e2: 009a lsls r2, r3, #2 80076e4: 4413 add r3, r2 80076e6: 6afa ldr r2, [r7, #44] ; 0x2c 80076e8: 4413 add r3, r2 80076ea: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80076ee: 2303 movs r3, #3 80076f0: 4621 mov r1, r4 80076f2: f7fc ffc7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); } } } 80076f6: f003 bfb8 b.w 800b66a 80076fa: bf00 nop 80076fc: 2006b510 .word 0x2006b510 8007700: 47c35000 .word 0x47c35000 8007704: 20020010 .word 0x20020010 8007708: 2006b2d0 .word 0x2006b2d0 800770c: 20020250 .word 0x20020250 8007710: 08015534 .word 0x08015534 8007714: 0801553c .word 0x0801553c 8007718: 20020030 .word 0x20020030 800771c: ffd8aa57 .word 0xffd8aa57 8007720: 08015544 .word 0x08015544 8007724: 0801554c .word 0x0801554c 8007728: 20020040 .word 0x20020040 800772c: 08015554 .word 0x08015554 8007730: 0801555c .word 0x0801555c 8007734: 20020068 .word 0x20020068 8007738: 08015564 .word 0x08015564 800773c: 0801556c .word 0x0801556c 8007740: 200200a8 .word 0x200200a8 8007744: 08015574 .word 0x08015574 8007748: 0801557c .word 0x0801557c 800774c: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007750: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007754: 4873 ldr r0, [pc, #460] ; (8007924 ) 8007756: f7fc fecf bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800775a: 79fb ldrb r3, [r7, #7] 800775c: 4a72 ldr r2, [pc, #456] ; (8007928 ) 800775e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007762: 79fb ldrb r3, [r7, #7] 8007764: 4a71 ldr r2, [pc, #452] ; (800792c ) 8007766: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800776a: 4b71 ldr r3, [pc, #452] ; (8007930 ) 800776c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007770: b29b uxth r3, r3 8007772: 461d mov r5, r3 8007774: 79fb ldrb r3, [r7, #7] 8007776: 4a6e ldr r2, [pc, #440] ; (8007930 ) 8007778: 015b lsls r3, r3, #5 800777a: 4413 add r3, r2 800777c: 881b ldrh r3, [r3, #0] 800777e: b29b uxth r3, r3 8007780: 461c mov r4, r3 8007782: 4a6c ldr r2, [pc, #432] ; (8007934 ) 8007784: 006b lsls r3, r5, #1 8007786: 4423 add r3, r4 8007788: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800778c: 2303 movs r3, #3 800778e: f7fc ff79 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8007792: 79fb ldrb r3, [r7, #7] 8007794: 4a68 ldr r2, [pc, #416] ; (8007938 ) 8007796: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800779a: 79fb ldrb r3, [r7, #7] 800779c: 4a67 ldr r2, [pc, #412] ; (800793c ) 800779e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80077a2: 4b63 ldr r3, [pc, #396] ; (8007930 ) 80077a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80077a8: b29b uxth r3, r3 80077aa: 4619 mov r1, r3 80077ac: 79fb ldrb r3, [r7, #7] 80077ae: 4a60 ldr r2, [pc, #384] ; (8007930 ) 80077b0: 015b lsls r3, r3, #5 80077b2: 4413 add r3, r2 80077b4: 3302 adds r3, #2 80077b6: 881b ldrh r3, [r3, #0] 80077b8: b29b uxth r3, r3 80077ba: 461d mov r5, r3 80077bc: 4a60 ldr r2, [pc, #384] ; (8007940 ) 80077be: 460b mov r3, r1 80077c0: 009b lsls r3, r3, #2 80077c2: 440b add r3, r1 80077c4: 442b add r3, r5 80077c6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80077ca: 2303 movs r3, #3 80077cc: 4621 mov r1, r4 80077ce: f7fc ff59 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 80077d2: 79fb ldrb r3, [r7, #7] 80077d4: 4a5b ldr r2, [pc, #364] ; (8007944 ) 80077d6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80077da: 79fb ldrb r3, [r7, #7] 80077dc: 4a5a ldr r2, [pc, #360] ; (8007948 ) 80077de: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80077e2: 4b53 ldr r3, [pc, #332] ; (8007930 ) 80077e4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80077e8: b29b uxth r3, r3 80077ea: 461d mov r5, r3 80077ec: 79fb ldrb r3, [r7, #7] 80077ee: 4a50 ldr r2, [pc, #320] ; (8007930 ) 80077f0: 015b lsls r3, r3, #5 80077f2: 4413 add r3, r2 80077f4: 3304 adds r3, #4 80077f6: 881b ldrh r3, [r3, #0] 80077f8: b29b uxth r3, r3 80077fa: 461c mov r4, r3 80077fc: 4a53 ldr r2, [pc, #332] ; (800794c ) 80077fe: 00eb lsls r3, r5, #3 8007800: 4423 add r3, r4 8007802: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007806: 2303 movs r3, #3 8007808: f7fc ff3c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 800780c: 79fb ldrb r3, [r7, #7] 800780e: 4a50 ldr r2, [pc, #320] ; (8007950 ) 8007810: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007814: 79fb ldrb r3, [r7, #7] 8007816: 4a4f ldr r2, [pc, #316] ; (8007954 ) 8007818: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800781c: f107 0208 add.w r2, r7, #8 8007820: 2303 movs r3, #3 8007822: f7fc ff2f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8007826: 79fb ldrb r3, [r7, #7] 8007828: 4a49 ldr r2, [pc, #292] ; (8007950 ) 800782a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800782e: 332d adds r3, #45 ; 0x2d 8007830: b298 uxth r0, r3 8007832: 79fb ldrb r3, [r7, #7] 8007834: 4a47 ldr r2, [pc, #284] ; (8007954 ) 8007836: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800783a: 79fb ldrb r3, [r7, #7] 800783c: 4a3c ldr r2, [pc, #240] ; (8007930 ) 800783e: 015b lsls r3, r3, #5 8007840: 4413 add r3, r2 8007842: 881b ldrh r3, [r3, #0] 8007844: b29b uxth r3, r3 8007846: 4619 mov r1, r3 8007848: 79fb ldrb r3, [r7, #7] 800784a: 4a39 ldr r2, [pc, #228] ; (8007930 ) 800784c: 015b lsls r3, r3, #5 800784e: 4413 add r3, r2 8007850: 3312 adds r3, #18 8007852: 881b ldrh r3, [r3, #0] 8007854: b29b uxth r3, r3 8007856: 461d mov r5, r3 8007858: 4a3f ldr r2, [pc, #252] ; (8007958 ) 800785a: 460b mov r3, r1 800785c: 005b lsls r3, r3, #1 800785e: 440b add r3, r1 8007860: 442b add r3, r5 8007862: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007866: 2303 movs r3, #3 8007868: 4621 mov r1, r4 800786a: f7fc ff0b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800786e: 79fb ldrb r3, [r7, #7] 8007870: 4a3a ldr r2, [pc, #232] ; (800795c ) 8007872: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007876: 79fb ldrb r3, [r7, #7] 8007878: 4a39 ldr r2, [pc, #228] ; (8007960 ) 800787a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800787e: 79fb ldrb r3, [r7, #7] 8007880: 4a2b ldr r2, [pc, #172] ; (8007930 ) 8007882: 015b lsls r3, r3, #5 8007884: 4413 add r3, r2 8007886: 3312 adds r3, #18 8007888: 881b ldrh r3, [r3, #0] 800788a: b29b uxth r3, r3 800788c: 461a mov r2, r3 800788e: 4935 ldr r1, [pc, #212] ; (8007964 ) 8007890: 4613 mov r3, r2 8007892: 009b lsls r3, r3, #2 8007894: 4413 add r3, r2 8007896: 009a lsls r2, r3, #2 8007898: 4413 add r3, r2 800789a: 6afa ldr r2, [r7, #44] ; 0x2c 800789c: 4413 add r3, r2 800789e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80078a2: 2303 movs r3, #3 80078a4: 4621 mov r1, r4 80078a6: f7fc feed bl 8004684 } 80078aa: f003 bede b.w 800b66a if(menupos == Hp) 80078ae: 4b2e ldr r3, [pc, #184] ; (8007968 ) 80078b0: 781b ldrb r3, [r3, #0] 80078b2: b2db uxtb r3, r3 80078b4: 2b01 cmp r3, #1 80078b6: f040 81dd bne.w 8007c74 if(ACTIVE_CHANNEL == ch) 80078ba: 79fa ldrb r2, [r7, #7] 80078bc: 4b2b ldr r3, [pc, #172] ; (800796c ) 80078be: 681b ldr r3, [r3, #0] 80078c0: 429a cmp r2, r3 80078c2: f040 8106 bne.w 8007ad2 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80078c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80078ca: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80078ce: f7fc fe13 bl 80044f8 if(focused) 80078d2: 4b27 ldr r3, [pc, #156] ; (8007970 ) 80078d4: 781b ldrb r3, [r3, #0] 80078d6: b2db uxtb r3, r3 80078d8: 2b00 cmp r3, #0 80078da: d04b beq.n 8007974 if(blk) 80078dc: 683b ldr r3, [r7, #0] 80078de: 2b00 cmp r3, #0 80078e0: d068 beq.n 80079b4 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 80078e2: 79fb ldrb r3, [r7, #7] 80078e4: 4a14 ldr r2, [pc, #80] ; (8007938 ) 80078e6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80078ea: 79fb ldrb r3, [r7, #7] 80078ec: 4a13 ldr r2, [pc, #76] ; (800793c ) 80078ee: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80078f2: 4b0f ldr r3, [pc, #60] ; (8007930 ) 80078f4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80078f8: b29b uxth r3, r3 80078fa: 4619 mov r1, r3 80078fc: 79fb ldrb r3, [r7, #7] 80078fe: 4a0c ldr r2, [pc, #48] ; (8007930 ) 8007900: 015b lsls r3, r3, #5 8007902: 4413 add r3, r2 8007904: 3302 adds r3, #2 8007906: 881b ldrh r3, [r3, #0] 8007908: b29b uxth r3, r3 800790a: 461d mov r5, r3 800790c: 4a0c ldr r2, [pc, #48] ; (8007940 ) 800790e: 460b mov r3, r1 8007910: 009b lsls r3, r3, #2 8007912: 440b add r3, r1 8007914: 442b add r3, r5 8007916: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800791a: 2303 movs r3, #3 800791c: 4621 mov r1, r4 800791e: f7fc feb1 bl 8004684 8007922: e047 b.n 80079b4 8007924: ffd8aa57 .word 0xffd8aa57 8007928: 08015534 .word 0x08015534 800792c: 0801553c .word 0x0801553c 8007930: 2006b510 .word 0x2006b510 8007934: 20020030 .word 0x20020030 8007938: 08015544 .word 0x08015544 800793c: 0801554c .word 0x0801554c 8007940: 20020040 .word 0x20020040 8007944: 08015554 .word 0x08015554 8007948: 0801555c .word 0x0801555c 800794c: 20020068 .word 0x20020068 8007950: 08015564 .word 0x08015564 8007954: 0801556c .word 0x0801556c 8007958: 200200a8 .word 0x200200a8 800795c: 08015574 .word 0x08015574 8007960: 0801557c .word 0x0801557c 8007964: 200200c0 .word 0x200200c0 8007968: 20020010 .word 0x20020010 800796c: 2006b2d0 .word 0x2006b2d0 8007970: 20020250 .word 0x20020250 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8007974: 79fb ldrb r3, [r7, #7] 8007976: 4aae ldr r2, [pc, #696] ; (8007c30 ) 8007978: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800797c: 79fb ldrb r3, [r7, #7] 800797e: 4aad ldr r2, [pc, #692] ; (8007c34 ) 8007980: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007984: 4bac ldr r3, [pc, #688] ; (8007c38 ) 8007986: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800798a: b29b uxth r3, r3 800798c: 4619 mov r1, r3 800798e: 79fb ldrb r3, [r7, #7] 8007990: 4aa9 ldr r2, [pc, #676] ; (8007c38 ) 8007992: 015b lsls r3, r3, #5 8007994: 4413 add r3, r2 8007996: 3302 adds r3, #2 8007998: 881b ldrh r3, [r3, #0] 800799a: b29b uxth r3, r3 800799c: 461d mov r5, r3 800799e: 4aa7 ldr r2, [pc, #668] ; (8007c3c ) 80079a0: 460b mov r3, r1 80079a2: 009b lsls r3, r3, #2 80079a4: 440b add r3, r1 80079a6: 442b add r3, r5 80079a8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80079ac: 2303 movs r3, #3 80079ae: 4621 mov r1, r4 80079b0: f7fc fe68 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80079b4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80079b8: 48a1 ldr r0, [pc, #644] ; (8007c40 ) 80079ba: f7fc fd9d bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 80079be: 79fb ldrb r3, [r7, #7] 80079c0: 4aa0 ldr r2, [pc, #640] ; (8007c44 ) 80079c2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80079c6: 79fb ldrb r3, [r7, #7] 80079c8: 4a9f ldr r2, [pc, #636] ; (8007c48 ) 80079ca: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80079ce: 4b9a ldr r3, [pc, #616] ; (8007c38 ) 80079d0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80079d4: b29b uxth r3, r3 80079d6: 461d mov r5, r3 80079d8: 79fb ldrb r3, [r7, #7] 80079da: 4a97 ldr r2, [pc, #604] ; (8007c38 ) 80079dc: 015b lsls r3, r3, #5 80079de: 4413 add r3, r2 80079e0: 881b ldrh r3, [r3, #0] 80079e2: b29b uxth r3, r3 80079e4: 461c mov r4, r3 80079e6: 4a99 ldr r2, [pc, #612] ; (8007c4c ) 80079e8: 006b lsls r3, r5, #1 80079ea: 4423 add r3, r4 80079ec: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80079f0: 2303 movs r3, #3 80079f2: f7fc fe47 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 80079f6: 79fb ldrb r3, [r7, #7] 80079f8: 4a95 ldr r2, [pc, #596] ; (8007c50 ) 80079fa: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80079fe: 79fb ldrb r3, [r7, #7] 8007a00: 4a94 ldr r2, [pc, #592] ; (8007c54 ) 8007a02: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007a06: 4b8c ldr r3, [pc, #560] ; (8007c38 ) 8007a08: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007a0c: b29b uxth r3, r3 8007a0e: 461d mov r5, r3 8007a10: 79fb ldrb r3, [r7, #7] 8007a12: 4a89 ldr r2, [pc, #548] ; (8007c38 ) 8007a14: 015b lsls r3, r3, #5 8007a16: 4413 add r3, r2 8007a18: 3304 adds r3, #4 8007a1a: 881b ldrh r3, [r3, #0] 8007a1c: b29b uxth r3, r3 8007a1e: 461c mov r4, r3 8007a20: 4a8d ldr r2, [pc, #564] ; (8007c58 ) 8007a22: 00eb lsls r3, r5, #3 8007a24: 4423 add r3, r4 8007a26: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007a2a: 2303 movs r3, #3 8007a2c: f7fc fe2a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 8007a30: 79fb ldrb r3, [r7, #7] 8007a32: 4a8a ldr r2, [pc, #552] ; (8007c5c ) 8007a34: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007a38: 79fb ldrb r3, [r7, #7] 8007a3a: 4a89 ldr r2, [pc, #548] ; (8007c60 ) 8007a3c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007a40: f107 0208 add.w r2, r7, #8 8007a44: 2303 movs r3, #3 8007a46: f7fc fe1d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8007a4a: 79fb ldrb r3, [r7, #7] 8007a4c: 4a83 ldr r2, [pc, #524] ; (8007c5c ) 8007a4e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8007a52: 332d adds r3, #45 ; 0x2d 8007a54: b298 uxth r0, r3 8007a56: 79fb ldrb r3, [r7, #7] 8007a58: 4a81 ldr r2, [pc, #516] ; (8007c60 ) 8007a5a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007a5e: 79fb ldrb r3, [r7, #7] 8007a60: 4a75 ldr r2, [pc, #468] ; (8007c38 ) 8007a62: 015b lsls r3, r3, #5 8007a64: 4413 add r3, r2 8007a66: 881b ldrh r3, [r3, #0] 8007a68: b29b uxth r3, r3 8007a6a: 4619 mov r1, r3 8007a6c: 79fb ldrb r3, [r7, #7] 8007a6e: 4a72 ldr r2, [pc, #456] ; (8007c38 ) 8007a70: 015b lsls r3, r3, #5 8007a72: 4413 add r3, r2 8007a74: 3312 adds r3, #18 8007a76: 881b ldrh r3, [r3, #0] 8007a78: b29b uxth r3, r3 8007a7a: 461d mov r5, r3 8007a7c: 4a79 ldr r2, [pc, #484] ; (8007c64 ) 8007a7e: 460b mov r3, r1 8007a80: 005b lsls r3, r3, #1 8007a82: 440b add r3, r1 8007a84: 442b add r3, r5 8007a86: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007a8a: 2303 movs r3, #3 8007a8c: 4621 mov r1, r4 8007a8e: f7fc fdf9 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8007a92: 79fb ldrb r3, [r7, #7] 8007a94: 4a74 ldr r2, [pc, #464] ; (8007c68 ) 8007a96: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007a9a: 79fb ldrb r3, [r7, #7] 8007a9c: 4a73 ldr r2, [pc, #460] ; (8007c6c ) 8007a9e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007aa2: 79fb ldrb r3, [r7, #7] 8007aa4: 4a64 ldr r2, [pc, #400] ; (8007c38 ) 8007aa6: 015b lsls r3, r3, #5 8007aa8: 4413 add r3, r2 8007aaa: 3312 adds r3, #18 8007aac: 881b ldrh r3, [r3, #0] 8007aae: b29b uxth r3, r3 8007ab0: 461a mov r2, r3 8007ab2: 496f ldr r1, [pc, #444] ; (8007c70 ) 8007ab4: 4613 mov r3, r2 8007ab6: 009b lsls r3, r3, #2 8007ab8: 4413 add r3, r2 8007aba: 009a lsls r2, r3, #2 8007abc: 4413 add r3, r2 8007abe: 6afa ldr r2, [r7, #44] ; 0x2c 8007ac0: 4413 add r3, r2 8007ac2: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007ac6: 2303 movs r3, #3 8007ac8: 4621 mov r1, r4 8007aca: f7fc fddb bl 8004684 } 8007ace: f003 bdcc b.w 800b66a LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007ad2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007ad6: 485a ldr r0, [pc, #360] ; (8007c40 ) 8007ad8: f7fc fd0e bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8007adc: 79fb ldrb r3, [r7, #7] 8007ade: 4a59 ldr r2, [pc, #356] ; (8007c44 ) 8007ae0: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007ae4: 79fb ldrb r3, [r7, #7] 8007ae6: 4a58 ldr r2, [pc, #352] ; (8007c48 ) 8007ae8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007aec: 4b52 ldr r3, [pc, #328] ; (8007c38 ) 8007aee: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007af2: b29b uxth r3, r3 8007af4: 461d mov r5, r3 8007af6: 79fb ldrb r3, [r7, #7] 8007af8: 4a4f ldr r2, [pc, #316] ; (8007c38 ) 8007afa: 015b lsls r3, r3, #5 8007afc: 4413 add r3, r2 8007afe: 881b ldrh r3, [r3, #0] 8007b00: b29b uxth r3, r3 8007b02: 461c mov r4, r3 8007b04: 4a51 ldr r2, [pc, #324] ; (8007c4c ) 8007b06: 006b lsls r3, r5, #1 8007b08: 4423 add r3, r4 8007b0a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007b0e: 2303 movs r3, #3 8007b10: f7fc fdb8 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8007b14: 79fb ldrb r3, [r7, #7] 8007b16: 4a46 ldr r2, [pc, #280] ; (8007c30 ) 8007b18: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007b1c: 79fb ldrb r3, [r7, #7] 8007b1e: 4a45 ldr r2, [pc, #276] ; (8007c34 ) 8007b20: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007b24: 4b44 ldr r3, [pc, #272] ; (8007c38 ) 8007b26: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007b2a: b29b uxth r3, r3 8007b2c: 4619 mov r1, r3 8007b2e: 79fb ldrb r3, [r7, #7] 8007b30: 4a41 ldr r2, [pc, #260] ; (8007c38 ) 8007b32: 015b lsls r3, r3, #5 8007b34: 4413 add r3, r2 8007b36: 3302 adds r3, #2 8007b38: 881b ldrh r3, [r3, #0] 8007b3a: b29b uxth r3, r3 8007b3c: 461d mov r5, r3 8007b3e: 4a3f ldr r2, [pc, #252] ; (8007c3c ) 8007b40: 460b mov r3, r1 8007b42: 009b lsls r3, r3, #2 8007b44: 440b add r3, r1 8007b46: 442b add r3, r5 8007b48: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007b4c: 2303 movs r3, #3 8007b4e: 4621 mov r1, r4 8007b50: f7fc fd98 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8007b54: 79fb ldrb r3, [r7, #7] 8007b56: 4a3e ldr r2, [pc, #248] ; (8007c50 ) 8007b58: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007b5c: 79fb ldrb r3, [r7, #7] 8007b5e: 4a3d ldr r2, [pc, #244] ; (8007c54 ) 8007b60: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007b64: 4b34 ldr r3, [pc, #208] ; (8007c38 ) 8007b66: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007b6a: b29b uxth r3, r3 8007b6c: 461d mov r5, r3 8007b6e: 79fb ldrb r3, [r7, #7] 8007b70: 4a31 ldr r2, [pc, #196] ; (8007c38 ) 8007b72: 015b lsls r3, r3, #5 8007b74: 4413 add r3, r2 8007b76: 3304 adds r3, #4 8007b78: 881b ldrh r3, [r3, #0] 8007b7a: b29b uxth r3, r3 8007b7c: 461c mov r4, r3 8007b7e: 4a36 ldr r2, [pc, #216] ; (8007c58 ) 8007b80: 00eb lsls r3, r5, #3 8007b82: 4423 add r3, r4 8007b84: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007b88: 2303 movs r3, #3 8007b8a: f7fc fd7b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 8007b8e: 79fb ldrb r3, [r7, #7] 8007b90: 4a32 ldr r2, [pc, #200] ; (8007c5c ) 8007b92: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007b96: 79fb ldrb r3, [r7, #7] 8007b98: 4a31 ldr r2, [pc, #196] ; (8007c60 ) 8007b9a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007b9e: f107 0208 add.w r2, r7, #8 8007ba2: 2303 movs r3, #3 8007ba4: f7fc fd6e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8007ba8: 79fb ldrb r3, [r7, #7] 8007baa: 4a2c ldr r2, [pc, #176] ; (8007c5c ) 8007bac: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8007bb0: 332d adds r3, #45 ; 0x2d 8007bb2: b298 uxth r0, r3 8007bb4: 79fb ldrb r3, [r7, #7] 8007bb6: 4a2a ldr r2, [pc, #168] ; (8007c60 ) 8007bb8: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007bbc: 79fb ldrb r3, [r7, #7] 8007bbe: 4a1e ldr r2, [pc, #120] ; (8007c38 ) 8007bc0: 015b lsls r3, r3, #5 8007bc2: 4413 add r3, r2 8007bc4: 881b ldrh r3, [r3, #0] 8007bc6: b29b uxth r3, r3 8007bc8: 4619 mov r1, r3 8007bca: 79fb ldrb r3, [r7, #7] 8007bcc: 4a1a ldr r2, [pc, #104] ; (8007c38 ) 8007bce: 015b lsls r3, r3, #5 8007bd0: 4413 add r3, r2 8007bd2: 3312 adds r3, #18 8007bd4: 881b ldrh r3, [r3, #0] 8007bd6: b29b uxth r3, r3 8007bd8: 461d mov r5, r3 8007bda: 4a22 ldr r2, [pc, #136] ; (8007c64 ) 8007bdc: 460b mov r3, r1 8007bde: 005b lsls r3, r3, #1 8007be0: 440b add r3, r1 8007be2: 442b add r3, r5 8007be4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007be8: 2303 movs r3, #3 8007bea: 4621 mov r1, r4 8007bec: f7fc fd4a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8007bf0: 79fb ldrb r3, [r7, #7] 8007bf2: 4a1d ldr r2, [pc, #116] ; (8007c68 ) 8007bf4: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007bf8: 79fb ldrb r3, [r7, #7] 8007bfa: 4a1c ldr r2, [pc, #112] ; (8007c6c ) 8007bfc: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007c00: 79fb ldrb r3, [r7, #7] 8007c02: 4a0d ldr r2, [pc, #52] ; (8007c38 ) 8007c04: 015b lsls r3, r3, #5 8007c06: 4413 add r3, r2 8007c08: 3312 adds r3, #18 8007c0a: 881b ldrh r3, [r3, #0] 8007c0c: b29b uxth r3, r3 8007c0e: 461a mov r2, r3 8007c10: 4917 ldr r1, [pc, #92] ; (8007c70 ) 8007c12: 4613 mov r3, r2 8007c14: 009b lsls r3, r3, #2 8007c16: 4413 add r3, r2 8007c18: 009a lsls r2, r3, #2 8007c1a: 4413 add r3, r2 8007c1c: 6afa ldr r2, [r7, #44] ; 0x2c 8007c1e: 4413 add r3, r2 8007c20: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007c24: 2303 movs r3, #3 8007c26: 4621 mov r1, r4 8007c28: f7fc fd2c bl 8004684 } 8007c2c: f003 bd1d b.w 800b66a 8007c30: 08015544 .word 0x08015544 8007c34: 0801554c .word 0x0801554c 8007c38: 2006b510 .word 0x2006b510 8007c3c: 20020040 .word 0x20020040 8007c40: ffd8aa57 .word 0xffd8aa57 8007c44: 08015534 .word 0x08015534 8007c48: 0801553c .word 0x0801553c 8007c4c: 20020030 .word 0x20020030 8007c50: 08015554 .word 0x08015554 8007c54: 0801555c .word 0x0801555c 8007c58: 20020068 .word 0x20020068 8007c5c: 08015564 .word 0x08015564 8007c60: 0801556c .word 0x0801556c 8007c64: 200200a8 .word 0x200200a8 8007c68: 08015574 .word 0x08015574 8007c6c: 0801557c .word 0x0801557c 8007c70: 200200c0 .word 0x200200c0 if(menupos == Lp) 8007c74: 4b73 ldr r3, [pc, #460] ; (8007e44 ) 8007c76: 781b ldrb r3, [r3, #0] 8007c78: b2db uxtb r3, r3 8007c7a: 2b02 cmp r3, #2 8007c7c: f040 81b9 bne.w 8007ff2 if(ACTIVE_CHANNEL == ch) 8007c80: 79fa ldrb r2, [r7, #7] 8007c82: 4b71 ldr r3, [pc, #452] ; (8007e48 ) 8007c84: 681b ldr r3, [r3, #0] 8007c86: 429a cmp r2, r3 8007c88: f040 8104 bne.w 8007e94 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8007c8c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007c90: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8007c94: f7fc fc30 bl 80044f8 if(focused) 8007c98: 4b6c ldr r3, [pc, #432] ; (8007e4c ) 8007c9a: 781b ldrb r3, [r3, #0] 8007c9c: b2db uxtb r3, r3 8007c9e: 2b00 cmp r3, #0 8007ca0: d020 beq.n 8007ce4 if(blk) 8007ca2: 683b ldr r3, [r7, #0] 8007ca4: 2b00 cmp r3, #0 8007ca6: d03a beq.n 8007d1e BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8007ca8: 79fb ldrb r3, [r7, #7] 8007caa: 4a69 ldr r2, [pc, #420] ; (8007e50 ) 8007cac: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007cb0: 79fb ldrb r3, [r7, #7] 8007cb2: 4a68 ldr r2, [pc, #416] ; (8007e54 ) 8007cb4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007cb8: 4b67 ldr r3, [pc, #412] ; (8007e58 ) 8007cba: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007cbe: b29b uxth r3, r3 8007cc0: 461d mov r5, r3 8007cc2: 79fb ldrb r3, [r7, #7] 8007cc4: 4a64 ldr r2, [pc, #400] ; (8007e58 ) 8007cc6: 015b lsls r3, r3, #5 8007cc8: 4413 add r3, r2 8007cca: 3304 adds r3, #4 8007ccc: 881b ldrh r3, [r3, #0] 8007cce: b29b uxth r3, r3 8007cd0: 461c mov r4, r3 8007cd2: 4a62 ldr r2, [pc, #392] ; (8007e5c ) 8007cd4: 00eb lsls r3, r5, #3 8007cd6: 4423 add r3, r4 8007cd8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007cdc: 2303 movs r3, #3 8007cde: f7fc fcd1 bl 8004684 8007ce2: e01c b.n 8007d1e BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8007ce4: 79fb ldrb r3, [r7, #7] 8007ce6: 4a5a ldr r2, [pc, #360] ; (8007e50 ) 8007ce8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007cec: 79fb ldrb r3, [r7, #7] 8007cee: 4a59 ldr r2, [pc, #356] ; (8007e54 ) 8007cf0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007cf4: 4b58 ldr r3, [pc, #352] ; (8007e58 ) 8007cf6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007cfa: b29b uxth r3, r3 8007cfc: 461d mov r5, r3 8007cfe: 79fb ldrb r3, [r7, #7] 8007d00: 4a55 ldr r2, [pc, #340] ; (8007e58 ) 8007d02: 015b lsls r3, r3, #5 8007d04: 4413 add r3, r2 8007d06: 3304 adds r3, #4 8007d08: 881b ldrh r3, [r3, #0] 8007d0a: b29b uxth r3, r3 8007d0c: 461c mov r4, r3 8007d0e: 4a53 ldr r2, [pc, #332] ; (8007e5c ) 8007d10: 00eb lsls r3, r5, #3 8007d12: 4423 add r3, r4 8007d14: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007d18: 2303 movs r3, #3 8007d1a: f7fc fcb3 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007d1e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007d22: 484f ldr r0, [pc, #316] ; (8007e60 ) 8007d24: f7fc fbe8 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8007d28: 79fb ldrb r3, [r7, #7] 8007d2a: 4a4e ldr r2, [pc, #312] ; (8007e64 ) 8007d2c: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007d30: 79fb ldrb r3, [r7, #7] 8007d32: 4a4d ldr r2, [pc, #308] ; (8007e68 ) 8007d34: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007d38: 4b47 ldr r3, [pc, #284] ; (8007e58 ) 8007d3a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007d3e: b29b uxth r3, r3 8007d40: 461d mov r5, r3 8007d42: 79fb ldrb r3, [r7, #7] 8007d44: 4a44 ldr r2, [pc, #272] ; (8007e58 ) 8007d46: 015b lsls r3, r3, #5 8007d48: 4413 add r3, r2 8007d4a: 881b ldrh r3, [r3, #0] 8007d4c: b29b uxth r3, r3 8007d4e: 461c mov r4, r3 8007d50: 4a46 ldr r2, [pc, #280] ; (8007e6c ) 8007d52: 006b lsls r3, r5, #1 8007d54: 4423 add r3, r4 8007d56: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007d5a: 2303 movs r3, #3 8007d5c: f7fc fc92 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8007d60: 79fb ldrb r3, [r7, #7] 8007d62: 4a43 ldr r2, [pc, #268] ; (8007e70 ) 8007d64: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007d68: 79fb ldrb r3, [r7, #7] 8007d6a: 4a42 ldr r2, [pc, #264] ; (8007e74 ) 8007d6c: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007d70: 4b39 ldr r3, [pc, #228] ; (8007e58 ) 8007d72: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007d76: b29b uxth r3, r3 8007d78: 4619 mov r1, r3 8007d7a: 79fb ldrb r3, [r7, #7] 8007d7c: 4a36 ldr r2, [pc, #216] ; (8007e58 ) 8007d7e: 015b lsls r3, r3, #5 8007d80: 4413 add r3, r2 8007d82: 3302 adds r3, #2 8007d84: 881b ldrh r3, [r3, #0] 8007d86: b29b uxth r3, r3 8007d88: 461d mov r5, r3 8007d8a: 4a3b ldr r2, [pc, #236] ; (8007e78 ) 8007d8c: 460b mov r3, r1 8007d8e: 009b lsls r3, r3, #2 8007d90: 440b add r3, r1 8007d92: 442b add r3, r5 8007d94: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007d98: 2303 movs r3, #3 8007d9a: 4621 mov r1, r4 8007d9c: f7fc fc72 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 8007da0: 79fb ldrb r3, [r7, #7] 8007da2: 4a36 ldr r2, [pc, #216] ; (8007e7c ) 8007da4: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007da8: 79fb ldrb r3, [r7, #7] 8007daa: 4a35 ldr r2, [pc, #212] ; (8007e80 ) 8007dac: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007db0: f107 0208 add.w r2, r7, #8 8007db4: 2303 movs r3, #3 8007db6: f7fc fc65 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8007dba: 79fb ldrb r3, [r7, #7] 8007dbc: 4a2f ldr r2, [pc, #188] ; (8007e7c ) 8007dbe: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8007dc2: 332d adds r3, #45 ; 0x2d 8007dc4: b298 uxth r0, r3 8007dc6: 79fb ldrb r3, [r7, #7] 8007dc8: 4a2d ldr r2, [pc, #180] ; (8007e80 ) 8007dca: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007dce: 79fb ldrb r3, [r7, #7] 8007dd0: 4a21 ldr r2, [pc, #132] ; (8007e58 ) 8007dd2: 015b lsls r3, r3, #5 8007dd4: 4413 add r3, r2 8007dd6: 881b ldrh r3, [r3, #0] 8007dd8: b29b uxth r3, r3 8007dda: 4619 mov r1, r3 8007ddc: 79fb ldrb r3, [r7, #7] 8007dde: 4a1e ldr r2, [pc, #120] ; (8007e58 ) 8007de0: 015b lsls r3, r3, #5 8007de2: 4413 add r3, r2 8007de4: 3312 adds r3, #18 8007de6: 881b ldrh r3, [r3, #0] 8007de8: b29b uxth r3, r3 8007dea: 461d mov r5, r3 8007dec: 4a25 ldr r2, [pc, #148] ; (8007e84 ) 8007dee: 460b mov r3, r1 8007df0: 005b lsls r3, r3, #1 8007df2: 440b add r3, r1 8007df4: 442b add r3, r5 8007df6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007dfa: 2303 movs r3, #3 8007dfc: 4621 mov r1, r4 8007dfe: f7fc fc41 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8007e02: 79fb ldrb r3, [r7, #7] 8007e04: 4a20 ldr r2, [pc, #128] ; (8007e88 ) 8007e06: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007e0a: 79fb ldrb r3, [r7, #7] 8007e0c: 4a1f ldr r2, [pc, #124] ; (8007e8c ) 8007e0e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007e12: 79fb ldrb r3, [r7, #7] 8007e14: 4a10 ldr r2, [pc, #64] ; (8007e58 ) 8007e16: 015b lsls r3, r3, #5 8007e18: 4413 add r3, r2 8007e1a: 3312 adds r3, #18 8007e1c: 881b ldrh r3, [r3, #0] 8007e1e: b29b uxth r3, r3 8007e20: 461a mov r2, r3 8007e22: 491b ldr r1, [pc, #108] ; (8007e90 ) 8007e24: 4613 mov r3, r2 8007e26: 009b lsls r3, r3, #2 8007e28: 4413 add r3, r2 8007e2a: 009a lsls r2, r3, #2 8007e2c: 4413 add r3, r2 8007e2e: 6afa ldr r2, [r7, #44] ; 0x2c 8007e30: 4413 add r3, r2 8007e32: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007e36: 2303 movs r3, #3 8007e38: 4621 mov r1, r4 8007e3a: f7fc fc23 bl 8004684 } 8007e3e: f003 bc14 b.w 800b66a 8007e42: bf00 nop 8007e44: 20020010 .word 0x20020010 8007e48: 2006b2d0 .word 0x2006b2d0 8007e4c: 20020250 .word 0x20020250 8007e50: 08015554 .word 0x08015554 8007e54: 0801555c .word 0x0801555c 8007e58: 2006b510 .word 0x2006b510 8007e5c: 20020068 .word 0x20020068 8007e60: ffd8aa57 .word 0xffd8aa57 8007e64: 08015534 .word 0x08015534 8007e68: 0801553c .word 0x0801553c 8007e6c: 20020030 .word 0x20020030 8007e70: 08015544 .word 0x08015544 8007e74: 0801554c .word 0x0801554c 8007e78: 20020040 .word 0x20020040 8007e7c: 08015564 .word 0x08015564 8007e80: 0801556c .word 0x0801556c 8007e84: 200200a8 .word 0x200200a8 8007e88: 08015574 .word 0x08015574 8007e8c: 0801557c .word 0x0801557c 8007e90: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8007e94: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8007e98: 48b6 ldr r0, [pc, #728] ; (8008174 ) 8007e9a: f7fc fb2d bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8007e9e: 79fb ldrb r3, [r7, #7] 8007ea0: 4ab5 ldr r2, [pc, #724] ; (8008178 ) 8007ea2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007ea6: 79fb ldrb r3, [r7, #7] 8007ea8: 4ab4 ldr r2, [pc, #720] ; (800817c ) 8007eaa: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007eae: 4bb4 ldr r3, [pc, #720] ; (8008180 ) 8007eb0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007eb4: b29b uxth r3, r3 8007eb6: 461d mov r5, r3 8007eb8: 79fb ldrb r3, [r7, #7] 8007eba: 4ab1 ldr r2, [pc, #708] ; (8008180 ) 8007ebc: 015b lsls r3, r3, #5 8007ebe: 4413 add r3, r2 8007ec0: 881b ldrh r3, [r3, #0] 8007ec2: b29b uxth r3, r3 8007ec4: 461c mov r4, r3 8007ec6: 4aaf ldr r2, [pc, #700] ; (8008184 ) 8007ec8: 006b lsls r3, r5, #1 8007eca: 4423 add r3, r4 8007ecc: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007ed0: 2303 movs r3, #3 8007ed2: f7fc fbd7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8007ed6: 79fb ldrb r3, [r7, #7] 8007ed8: 4aab ldr r2, [pc, #684] ; (8008188 ) 8007eda: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007ede: 79fb ldrb r3, [r7, #7] 8007ee0: 4aaa ldr r2, [pc, #680] ; (800818c ) 8007ee2: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007ee6: 4ba6 ldr r3, [pc, #664] ; (8008180 ) 8007ee8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007eec: b29b uxth r3, r3 8007eee: 4619 mov r1, r3 8007ef0: 79fb ldrb r3, [r7, #7] 8007ef2: 4aa3 ldr r2, [pc, #652] ; (8008180 ) 8007ef4: 015b lsls r3, r3, #5 8007ef6: 4413 add r3, r2 8007ef8: 3302 adds r3, #2 8007efa: 881b ldrh r3, [r3, #0] 8007efc: b29b uxth r3, r3 8007efe: 461d mov r5, r3 8007f00: 4aa3 ldr r2, [pc, #652] ; (8008190 ) 8007f02: 460b mov r3, r1 8007f04: 009b lsls r3, r3, #2 8007f06: 440b add r3, r1 8007f08: 442b add r3, r5 8007f0a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007f0e: 2303 movs r3, #3 8007f10: 4621 mov r1, r4 8007f12: f7fc fbb7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8007f16: 79fb ldrb r3, [r7, #7] 8007f18: 4a9e ldr r2, [pc, #632] ; (8008194 ) 8007f1a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007f1e: 79fb ldrb r3, [r7, #7] 8007f20: 4a9d ldr r2, [pc, #628] ; (8008198 ) 8007f22: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007f26: 4b96 ldr r3, [pc, #600] ; (8008180 ) 8007f28: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8007f2c: b29b uxth r3, r3 8007f2e: 461d mov r5, r3 8007f30: 79fb ldrb r3, [r7, #7] 8007f32: 4a93 ldr r2, [pc, #588] ; (8008180 ) 8007f34: 015b lsls r3, r3, #5 8007f36: 4413 add r3, r2 8007f38: 3304 adds r3, #4 8007f3a: 881b ldrh r3, [r3, #0] 8007f3c: b29b uxth r3, r3 8007f3e: 461c mov r4, r3 8007f40: 4a96 ldr r2, [pc, #600] ; (800819c ) 8007f42: 00eb lsls r3, r5, #3 8007f44: 4423 add r3, r4 8007f46: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007f4a: 2303 movs r3, #3 8007f4c: f7fc fb9a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 8007f50: 79fb ldrb r3, [r7, #7] 8007f52: 4a93 ldr r2, [pc, #588] ; (80081a0 ) 8007f54: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007f58: 79fb ldrb r3, [r7, #7] 8007f5a: 4a92 ldr r2, [pc, #584] ; (80081a4 ) 8007f5c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8007f60: f107 0208 add.w r2, r7, #8 8007f64: 2303 movs r3, #3 8007f66: f7fc fb8d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8007f6a: 79fb ldrb r3, [r7, #7] 8007f6c: 4a8c ldr r2, [pc, #560] ; (80081a0 ) 8007f6e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8007f72: 332d adds r3, #45 ; 0x2d 8007f74: b298 uxth r0, r3 8007f76: 79fb ldrb r3, [r7, #7] 8007f78: 4a8a ldr r2, [pc, #552] ; (80081a4 ) 8007f7a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007f7e: 79fb ldrb r3, [r7, #7] 8007f80: 4a7f ldr r2, [pc, #508] ; (8008180 ) 8007f82: 015b lsls r3, r3, #5 8007f84: 4413 add r3, r2 8007f86: 881b ldrh r3, [r3, #0] 8007f88: b29b uxth r3, r3 8007f8a: 4619 mov r1, r3 8007f8c: 79fb ldrb r3, [r7, #7] 8007f8e: 4a7c ldr r2, [pc, #496] ; (8008180 ) 8007f90: 015b lsls r3, r3, #5 8007f92: 4413 add r3, r2 8007f94: 3312 adds r3, #18 8007f96: 881b ldrh r3, [r3, #0] 8007f98: b29b uxth r3, r3 8007f9a: 461d mov r5, r3 8007f9c: 4a82 ldr r2, [pc, #520] ; (80081a8 ) 8007f9e: 460b mov r3, r1 8007fa0: 005b lsls r3, r3, #1 8007fa2: 440b add r3, r1 8007fa4: 442b add r3, r5 8007fa6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8007faa: 2303 movs r3, #3 8007fac: 4621 mov r1, r4 8007fae: f7fc fb69 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8007fb2: 79fb ldrb r3, [r7, #7] 8007fb4: 4a7d ldr r2, [pc, #500] ; (80081ac ) 8007fb6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8007fba: 79fb ldrb r3, [r7, #7] 8007fbc: 4a7c ldr r2, [pc, #496] ; (80081b0 ) 8007fbe: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8007fc2: 79fb ldrb r3, [r7, #7] 8007fc4: 4a6e ldr r2, [pc, #440] ; (8008180 ) 8007fc6: 015b lsls r3, r3, #5 8007fc8: 4413 add r3, r2 8007fca: 3312 adds r3, #18 8007fcc: 881b ldrh r3, [r3, #0] 8007fce: b29b uxth r3, r3 8007fd0: 461a mov r2, r3 8007fd2: 4978 ldr r1, [pc, #480] ; (80081b4 ) 8007fd4: 4613 mov r3, r2 8007fd6: 009b lsls r3, r3, #2 8007fd8: 4413 add r3, r2 8007fda: 009a lsls r2, r3, #2 8007fdc: 4413 add r3, r2 8007fde: 6afa ldr r2, [r7, #44] ; 0x2c 8007fe0: 4413 add r3, r2 8007fe2: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8007fe6: 2303 movs r3, #3 8007fe8: 4621 mov r1, r4 8007fea: f7fc fb4b bl 8004684 } 8007fee: f003 bb3c b.w 800b66a if(menupos == Sens) 8007ff2: 4b71 ldr r3, [pc, #452] ; (80081b8 ) 8007ff4: 781b ldrb r3, [r3, #0] 8007ff6: b2db uxtb r3, r3 8007ff8: 2b03 cmp r3, #3 8007ffa: f040 8190 bne.w 800831e if(ACTIVE_CHANNEL == ch) 8007ffe: 79fa ldrb r2, [r7, #7] 8008000: 4b6e ldr r3, [pc, #440] ; (80081bc ) 8008002: 681b ldr r3, [r3, #0] 8008004: 429a cmp r2, r3 8008006: f040 80db bne.w 80081c0 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800800a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800800e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008012: f7fc fa71 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); 8008016: 79fb ldrb r3, [r7, #7] 8008018: 4a61 ldr r2, [pc, #388] ; (80081a0 ) 800801a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800801e: 79fb ldrb r3, [r7, #7] 8008020: 4a60 ldr r2, [pc, #384] ; (80081a4 ) 8008022: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008026: f107 0208 add.w r2, r7, #8 800802a: 2303 movs r3, #3 800802c: f7fc fb2a bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008030: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008034: 484f ldr r0, [pc, #316] ; (8008174 ) 8008036: f7fc fa5f bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800803a: 79fb ldrb r3, [r7, #7] 800803c: 4a4e ldr r2, [pc, #312] ; (8008178 ) 800803e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008042: 79fb ldrb r3, [r7, #7] 8008044: 4a4d ldr r2, [pc, #308] ; (800817c ) 8008046: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800804a: 4b4d ldr r3, [pc, #308] ; (8008180 ) 800804c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008050: b29b uxth r3, r3 8008052: 461d mov r5, r3 8008054: 79fb ldrb r3, [r7, #7] 8008056: 4a4a ldr r2, [pc, #296] ; (8008180 ) 8008058: 015b lsls r3, r3, #5 800805a: 4413 add r3, r2 800805c: 881b ldrh r3, [r3, #0] 800805e: b29b uxth r3, r3 8008060: 461c mov r4, r3 8008062: 4a48 ldr r2, [pc, #288] ; (8008184 ) 8008064: 006b lsls r3, r5, #1 8008066: 4423 add r3, r4 8008068: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800806c: 2303 movs r3, #3 800806e: f7fc fb09 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8008072: 79fb ldrb r3, [r7, #7] 8008074: 4a44 ldr r2, [pc, #272] ; (8008188 ) 8008076: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800807a: 79fb ldrb r3, [r7, #7] 800807c: 4a43 ldr r2, [pc, #268] ; (800818c ) 800807e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008082: 4b3f ldr r3, [pc, #252] ; (8008180 ) 8008084: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008088: b29b uxth r3, r3 800808a: 4619 mov r1, r3 800808c: 79fb ldrb r3, [r7, #7] 800808e: 4a3c ldr r2, [pc, #240] ; (8008180 ) 8008090: 015b lsls r3, r3, #5 8008092: 4413 add r3, r2 8008094: 3302 adds r3, #2 8008096: 881b ldrh r3, [r3, #0] 8008098: b29b uxth r3, r3 800809a: 461d mov r5, r3 800809c: 4a3c ldr r2, [pc, #240] ; (8008190 ) 800809e: 460b mov r3, r1 80080a0: 009b lsls r3, r3, #2 80080a2: 440b add r3, r1 80080a4: 442b add r3, r5 80080a6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80080aa: 2303 movs r3, #3 80080ac: 4621 mov r1, r4 80080ae: f7fc fae9 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 80080b2: 79fb ldrb r3, [r7, #7] 80080b4: 4a37 ldr r2, [pc, #220] ; (8008194 ) 80080b6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80080ba: 79fb ldrb r3, [r7, #7] 80080bc: 4a36 ldr r2, [pc, #216] ; (8008198 ) 80080be: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80080c2: 4b2f ldr r3, [pc, #188] ; (8008180 ) 80080c4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80080c8: b29b uxth r3, r3 80080ca: 461d mov r5, r3 80080cc: 79fb ldrb r3, [r7, #7] 80080ce: 4a2c ldr r2, [pc, #176] ; (8008180 ) 80080d0: 015b lsls r3, r3, #5 80080d2: 4413 add r3, r2 80080d4: 3304 adds r3, #4 80080d6: 881b ldrh r3, [r3, #0] 80080d8: b29b uxth r3, r3 80080da: 461c mov r4, r3 80080dc: 4a2f ldr r2, [pc, #188] ; (800819c ) 80080de: 00eb lsls r3, r5, #3 80080e0: 4423 add r3, r4 80080e2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80080e6: 2303 movs r3, #3 80080e8: f7fc facc bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 80080ec: 79fb ldrb r3, [r7, #7] 80080ee: 4a2c ldr r2, [pc, #176] ; (80081a0 ) 80080f0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80080f4: 332d adds r3, #45 ; 0x2d 80080f6: b298 uxth r0, r3 80080f8: 79fb ldrb r3, [r7, #7] 80080fa: 4a2a ldr r2, [pc, #168] ; (80081a4 ) 80080fc: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008100: 79fb ldrb r3, [r7, #7] 8008102: 4a1f ldr r2, [pc, #124] ; (8008180 ) 8008104: 015b lsls r3, r3, #5 8008106: 4413 add r3, r2 8008108: 881b ldrh r3, [r3, #0] 800810a: b29b uxth r3, r3 800810c: 4619 mov r1, r3 800810e: 79fb ldrb r3, [r7, #7] 8008110: 4a1b ldr r2, [pc, #108] ; (8008180 ) 8008112: 015b lsls r3, r3, #5 8008114: 4413 add r3, r2 8008116: 3312 adds r3, #18 8008118: 881b ldrh r3, [r3, #0] 800811a: b29b uxth r3, r3 800811c: 461d mov r5, r3 800811e: 4a22 ldr r2, [pc, #136] ; (80081a8 ) 8008120: 460b mov r3, r1 8008122: 005b lsls r3, r3, #1 8008124: 440b add r3, r1 8008126: 442b add r3, r5 8008128: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800812c: 2303 movs r3, #3 800812e: 4621 mov r1, r4 8008130: f7fc faa8 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8008134: 79fb ldrb r3, [r7, #7] 8008136: 4a1d ldr r2, [pc, #116] ; (80081ac ) 8008138: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800813c: 79fb ldrb r3, [r7, #7] 800813e: 4a1c ldr r2, [pc, #112] ; (80081b0 ) 8008140: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008144: 79fb ldrb r3, [r7, #7] 8008146: 4a0e ldr r2, [pc, #56] ; (8008180 ) 8008148: 015b lsls r3, r3, #5 800814a: 4413 add r3, r2 800814c: 3312 adds r3, #18 800814e: 881b ldrh r3, [r3, #0] 8008150: b29b uxth r3, r3 8008152: 461a mov r2, r3 8008154: 4917 ldr r1, [pc, #92] ; (80081b4 ) 8008156: 4613 mov r3, r2 8008158: 009b lsls r3, r3, #2 800815a: 4413 add r3, r2 800815c: 009a lsls r2, r3, #2 800815e: 4413 add r3, r2 8008160: 6afa ldr r2, [r7, #44] ; 0x2c 8008162: 4413 add r3, r2 8008164: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008168: 2303 movs r3, #3 800816a: 4621 mov r1, r4 800816c: f7fc fa8a bl 8004684 } 8008170: f003 ba7b b.w 800b66a 8008174: ffd8aa57 .word 0xffd8aa57 8008178: 08015534 .word 0x08015534 800817c: 0801553c .word 0x0801553c 8008180: 2006b510 .word 0x2006b510 8008184: 20020030 .word 0x20020030 8008188: 08015544 .word 0x08015544 800818c: 0801554c .word 0x0801554c 8008190: 20020040 .word 0x20020040 8008194: 08015554 .word 0x08015554 8008198: 0801555c .word 0x0801555c 800819c: 20020068 .word 0x20020068 80081a0: 08015564 .word 0x08015564 80081a4: 0801556c .word 0x0801556c 80081a8: 200200a8 .word 0x200200a8 80081ac: 08015574 .word 0x08015574 80081b0: 0801557c .word 0x0801557c 80081b4: 200200c0 .word 0x200200c0 80081b8: 20020010 .word 0x20020010 80081bc: 2006b2d0 .word 0x2006b2d0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80081c0: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80081c4: 4875 ldr r0, [pc, #468] ; (800839c ) 80081c6: f7fc f997 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 80081ca: 79fb ldrb r3, [r7, #7] 80081cc: 4a74 ldr r2, [pc, #464] ; (80083a0 ) 80081ce: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80081d2: 79fb ldrb r3, [r7, #7] 80081d4: 4a73 ldr r2, [pc, #460] ; (80083a4 ) 80081d6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80081da: 4b73 ldr r3, [pc, #460] ; (80083a8 ) 80081dc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80081e0: b29b uxth r3, r3 80081e2: 461d mov r5, r3 80081e4: 79fb ldrb r3, [r7, #7] 80081e6: 4a70 ldr r2, [pc, #448] ; (80083a8 ) 80081e8: 015b lsls r3, r3, #5 80081ea: 4413 add r3, r2 80081ec: 881b ldrh r3, [r3, #0] 80081ee: b29b uxth r3, r3 80081f0: 461c mov r4, r3 80081f2: 4a6e ldr r2, [pc, #440] ; (80083ac ) 80081f4: 006b lsls r3, r5, #1 80081f6: 4423 add r3, r4 80081f8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80081fc: 2303 movs r3, #3 80081fe: f7fc fa41 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8008202: 79fb ldrb r3, [r7, #7] 8008204: 4a6a ldr r2, [pc, #424] ; (80083b0 ) 8008206: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800820a: 79fb ldrb r3, [r7, #7] 800820c: 4a69 ldr r2, [pc, #420] ; (80083b4 ) 800820e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008212: 4b65 ldr r3, [pc, #404] ; (80083a8 ) 8008214: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008218: b29b uxth r3, r3 800821a: 4619 mov r1, r3 800821c: 79fb ldrb r3, [r7, #7] 800821e: 4a62 ldr r2, [pc, #392] ; (80083a8 ) 8008220: 015b lsls r3, r3, #5 8008222: 4413 add r3, r2 8008224: 3302 adds r3, #2 8008226: 881b ldrh r3, [r3, #0] 8008228: b29b uxth r3, r3 800822a: 461d mov r5, r3 800822c: 4a62 ldr r2, [pc, #392] ; (80083b8 ) 800822e: 460b mov r3, r1 8008230: 009b lsls r3, r3, #2 8008232: 440b add r3, r1 8008234: 442b add r3, r5 8008236: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800823a: 2303 movs r3, #3 800823c: 4621 mov r1, r4 800823e: f7fc fa21 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8008242: 79fb ldrb r3, [r7, #7] 8008244: 4a5d ldr r2, [pc, #372] ; (80083bc ) 8008246: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800824a: 79fb ldrb r3, [r7, #7] 800824c: 4a5c ldr r2, [pc, #368] ; (80083c0 ) 800824e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008252: 4b55 ldr r3, [pc, #340] ; (80083a8 ) 8008254: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008258: b29b uxth r3, r3 800825a: 461d mov r5, r3 800825c: 79fb ldrb r3, [r7, #7] 800825e: 4a52 ldr r2, [pc, #328] ; (80083a8 ) 8008260: 015b lsls r3, r3, #5 8008262: 4413 add r3, r2 8008264: 3304 adds r3, #4 8008266: 881b ldrh r3, [r3, #0] 8008268: b29b uxth r3, r3 800826a: 461c mov r4, r3 800826c: 4a55 ldr r2, [pc, #340] ; (80083c4 ) 800826e: 00eb lsls r3, r5, #3 8008270: 4423 add r3, r4 8008272: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008276: 2303 movs r3, #3 8008278: f7fc fa04 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); 800827c: 79fb ldrb r3, [r7, #7] 800827e: 4a52 ldr r2, [pc, #328] ; (80083c8 ) 8008280: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008284: 79fb ldrb r3, [r7, #7] 8008286: 4a51 ldr r2, [pc, #324] ; (80083cc ) 8008288: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800828c: f107 0208 add.w r2, r7, #8 8008290: 2303 movs r3, #3 8008292: f7fc f9f7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8008296: 79fb ldrb r3, [r7, #7] 8008298: 4a4b ldr r2, [pc, #300] ; (80083c8 ) 800829a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800829e: 332d adds r3, #45 ; 0x2d 80082a0: b298 uxth r0, r3 80082a2: 79fb ldrb r3, [r7, #7] 80082a4: 4a49 ldr r2, [pc, #292] ; (80083cc ) 80082a6: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80082aa: 79fb ldrb r3, [r7, #7] 80082ac: 4a3e ldr r2, [pc, #248] ; (80083a8 ) 80082ae: 015b lsls r3, r3, #5 80082b0: 4413 add r3, r2 80082b2: 881b ldrh r3, [r3, #0] 80082b4: b29b uxth r3, r3 80082b6: 4619 mov r1, r3 80082b8: 79fb ldrb r3, [r7, #7] 80082ba: 4a3b ldr r2, [pc, #236] ; (80083a8 ) 80082bc: 015b lsls r3, r3, #5 80082be: 4413 add r3, r2 80082c0: 3312 adds r3, #18 80082c2: 881b ldrh r3, [r3, #0] 80082c4: b29b uxth r3, r3 80082c6: 461d mov r5, r3 80082c8: 4a41 ldr r2, [pc, #260] ; (80083d0 ) 80082ca: 460b mov r3, r1 80082cc: 005b lsls r3, r3, #1 80082ce: 440b add r3, r1 80082d0: 442b add r3, r5 80082d2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80082d6: 2303 movs r3, #3 80082d8: 4621 mov r1, r4 80082da: f7fc f9d3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 80082de: 79fb ldrb r3, [r7, #7] 80082e0: 4a3c ldr r2, [pc, #240] ; (80083d4 ) 80082e2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80082e6: 79fb ldrb r3, [r7, #7] 80082e8: 4a3b ldr r2, [pc, #236] ; (80083d8 ) 80082ea: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80082ee: 79fb ldrb r3, [r7, #7] 80082f0: 4a2d ldr r2, [pc, #180] ; (80083a8 ) 80082f2: 015b lsls r3, r3, #5 80082f4: 4413 add r3, r2 80082f6: 3312 adds r3, #18 80082f8: 881b ldrh r3, [r3, #0] 80082fa: b29b uxth r3, r3 80082fc: 461a mov r2, r3 80082fe: 4937 ldr r1, [pc, #220] ; (80083dc ) 8008300: 4613 mov r3, r2 8008302: 009b lsls r3, r3, #2 8008304: 4413 add r3, r2 8008306: 009a lsls r2, r3, #2 8008308: 4413 add r3, r2 800830a: 6afa ldr r2, [r7, #44] ; 0x2c 800830c: 4413 add r3, r2 800830e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008312: 2303 movs r3, #3 8008314: 4621 mov r1, r4 8008316: f7fc f9b5 bl 8004684 } 800831a: f003 b9a6 b.w 800b66a if(menupos == Val) 800831e: 4b30 ldr r3, [pc, #192] ; (80083e0 ) 8008320: 781b ldrb r3, [r3, #0] 8008322: b2db uxtb r3, r3 8008324: 2b04 cmp r3, #4 8008326: f040 81e1 bne.w 80086ec if(ACTIVE_CHANNEL == ch) 800832a: 79fa ldrb r2, [r7, #7] 800832c: 4b2d ldr r3, [pc, #180] ; (80083e4 ) 800832e: 681b ldr r3, [r3, #0] 8008330: 429a cmp r2, r3 8008332: f040 810a bne.w 800854a LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008336: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800833a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800833e: f7fc f8db bl 80044f8 if(focused) 8008342: 4b29 ldr r3, [pc, #164] ; (80083e8 ) 8008344: 781b ldrb r3, [r3, #0] 8008346: b2db uxtb r3, r3 8008348: 2b00 cmp r3, #0 800834a: d04f beq.n 80083ec if(blk) 800834c: 683b ldr r3, [r7, #0] 800834e: 2b00 cmp r3, #0 8008350: d070 beq.n 8008434 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8008352: 79fb ldrb r3, [r7, #7] 8008354: 4a1c ldr r2, [pc, #112] ; (80083c8 ) 8008356: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800835a: 332d adds r3, #45 ; 0x2d 800835c: b298 uxth r0, r3 800835e: 79fb ldrb r3, [r7, #7] 8008360: 4a1a ldr r2, [pc, #104] ; (80083cc ) 8008362: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008366: 79fb ldrb r3, [r7, #7] 8008368: 4a0f ldr r2, [pc, #60] ; (80083a8 ) 800836a: 015b lsls r3, r3, #5 800836c: 4413 add r3, r2 800836e: 881b ldrh r3, [r3, #0] 8008370: b29b uxth r3, r3 8008372: 4619 mov r1, r3 8008374: 79fb ldrb r3, [r7, #7] 8008376: 4a0c ldr r2, [pc, #48] ; (80083a8 ) 8008378: 015b lsls r3, r3, #5 800837a: 4413 add r3, r2 800837c: 3312 adds r3, #18 800837e: 881b ldrh r3, [r3, #0] 8008380: b29b uxth r3, r3 8008382: 461d mov r5, r3 8008384: 4a12 ldr r2, [pc, #72] ; (80083d0 ) 8008386: 460b mov r3, r1 8008388: 005b lsls r3, r3, #1 800838a: 440b add r3, r1 800838c: 442b add r3, r5 800838e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008392: 2303 movs r3, #3 8008394: 4621 mov r1, r4 8008396: f7fc f975 bl 8004684 800839a: e04b b.n 8008434 800839c: ffd8aa57 .word 0xffd8aa57 80083a0: 08015534 .word 0x08015534 80083a4: 0801553c .word 0x0801553c 80083a8: 2006b510 .word 0x2006b510 80083ac: 20020030 .word 0x20020030 80083b0: 08015544 .word 0x08015544 80083b4: 0801554c .word 0x0801554c 80083b8: 20020040 .word 0x20020040 80083bc: 08015554 .word 0x08015554 80083c0: 0801555c .word 0x0801555c 80083c4: 20020068 .word 0x20020068 80083c8: 08015564 .word 0x08015564 80083cc: 0801556c .word 0x0801556c 80083d0: 200200a8 .word 0x200200a8 80083d4: 08015574 .word 0x08015574 80083d8: 0801557c .word 0x0801557c 80083dc: 200200c0 .word 0x200200c0 80083e0: 20020010 .word 0x20020010 80083e4: 2006b2d0 .word 0x2006b2d0 80083e8: 20020250 .word 0x20020250 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 80083ec: 79fb ldrb r3, [r7, #7] 80083ee: 4aae ldr r2, [pc, #696] ; (80086a8 ) 80083f0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80083f4: 332d adds r3, #45 ; 0x2d 80083f6: b298 uxth r0, r3 80083f8: 79fb ldrb r3, [r7, #7] 80083fa: 4aac ldr r2, [pc, #688] ; (80086ac ) 80083fc: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008400: 79fb ldrb r3, [r7, #7] 8008402: 4aab ldr r2, [pc, #684] ; (80086b0 ) 8008404: 015b lsls r3, r3, #5 8008406: 4413 add r3, r2 8008408: 881b ldrh r3, [r3, #0] 800840a: b29b uxth r3, r3 800840c: 4619 mov r1, r3 800840e: 79fb ldrb r3, [r7, #7] 8008410: 4aa7 ldr r2, [pc, #668] ; (80086b0 ) 8008412: 015b lsls r3, r3, #5 8008414: 4413 add r3, r2 8008416: 3312 adds r3, #18 8008418: 881b ldrh r3, [r3, #0] 800841a: b29b uxth r3, r3 800841c: 461d mov r5, r3 800841e: 4aa5 ldr r2, [pc, #660] ; (80086b4 ) 8008420: 460b mov r3, r1 8008422: 005b lsls r3, r3, #1 8008424: 440b add r3, r1 8008426: 442b add r3, r5 8008428: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800842c: 2303 movs r3, #3 800842e: 4621 mov r1, r4 8008430: f7fc f928 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008434: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008438: 489f ldr r0, [pc, #636] ; (80086b8 ) 800843a: f7fc f85d bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800843e: 79fb ldrb r3, [r7, #7] 8008440: 4a9e ldr r2, [pc, #632] ; (80086bc ) 8008442: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008446: 79fb ldrb r3, [r7, #7] 8008448: 4a9d ldr r2, [pc, #628] ; (80086c0 ) 800844a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800844e: 4b98 ldr r3, [pc, #608] ; (80086b0 ) 8008450: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008454: b29b uxth r3, r3 8008456: 461d mov r5, r3 8008458: 79fb ldrb r3, [r7, #7] 800845a: 4a95 ldr r2, [pc, #596] ; (80086b0 ) 800845c: 015b lsls r3, r3, #5 800845e: 4413 add r3, r2 8008460: 881b ldrh r3, [r3, #0] 8008462: b29b uxth r3, r3 8008464: 461c mov r4, r3 8008466: 4a97 ldr r2, [pc, #604] ; (80086c4 ) 8008468: 006b lsls r3, r5, #1 800846a: 4423 add r3, r4 800846c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008470: 2303 movs r3, #3 8008472: f7fc f907 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8008476: 79fb ldrb r3, [r7, #7] 8008478: 4a93 ldr r2, [pc, #588] ; (80086c8 ) 800847a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800847e: 79fb ldrb r3, [r7, #7] 8008480: 4a92 ldr r2, [pc, #584] ; (80086cc ) 8008482: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008486: 4b8a ldr r3, [pc, #552] ; (80086b0 ) 8008488: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800848c: b29b uxth r3, r3 800848e: 4619 mov r1, r3 8008490: 79fb ldrb r3, [r7, #7] 8008492: 4a87 ldr r2, [pc, #540] ; (80086b0 ) 8008494: 015b lsls r3, r3, #5 8008496: 4413 add r3, r2 8008498: 3302 adds r3, #2 800849a: 881b ldrh r3, [r3, #0] 800849c: b29b uxth r3, r3 800849e: 461d mov r5, r3 80084a0: 4a8b ldr r2, [pc, #556] ; (80086d0 ) 80084a2: 460b mov r3, r1 80084a4: 009b lsls r3, r3, #2 80084a6: 440b add r3, r1 80084a8: 442b add r3, r5 80084aa: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80084ae: 2303 movs r3, #3 80084b0: 4621 mov r1, r4 80084b2: f7fc f8e7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 80084b6: 79fb ldrb r3, [r7, #7] 80084b8: 4a86 ldr r2, [pc, #536] ; (80086d4 ) 80084ba: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80084be: 79fb ldrb r3, [r7, #7] 80084c0: 4a85 ldr r2, [pc, #532] ; (80086d8 ) 80084c2: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80084c6: 4b7a ldr r3, [pc, #488] ; (80086b0 ) 80084c8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80084cc: b29b uxth r3, r3 80084ce: 461d mov r5, r3 80084d0: 79fb ldrb r3, [r7, #7] 80084d2: 4a77 ldr r2, [pc, #476] ; (80086b0 ) 80084d4: 015b lsls r3, r3, #5 80084d6: 4413 add r3, r2 80084d8: 3304 adds r3, #4 80084da: 881b ldrh r3, [r3, #0] 80084dc: b29b uxth r3, r3 80084de: 461c mov r4, r3 80084e0: 4a7e ldr r2, [pc, #504] ; (80086dc ) 80084e2: 00eb lsls r3, r5, #3 80084e4: 4423 add r3, r4 80084e6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80084ea: 2303 movs r3, #3 80084ec: f7fc f8ca bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); 80084f0: 79fb ldrb r3, [r7, #7] 80084f2: 4a6d ldr r2, [pc, #436] ; (80086a8 ) 80084f4: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80084f8: 79fb ldrb r3, [r7, #7] 80084fa: 4a6c ldr r2, [pc, #432] ; (80086ac ) 80084fc: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008500: f107 0208 add.w r2, r7, #8 8008504: 2303 movs r3, #3 8008506: f7fc f8bd bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800850a: 79fb ldrb r3, [r7, #7] 800850c: 4a74 ldr r2, [pc, #464] ; (80086e0 ) 800850e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008512: 79fb ldrb r3, [r7, #7] 8008514: 4a73 ldr r2, [pc, #460] ; (80086e4 ) 8008516: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800851a: 79fb ldrb r3, [r7, #7] 800851c: 4a64 ldr r2, [pc, #400] ; (80086b0 ) 800851e: 015b lsls r3, r3, #5 8008520: 4413 add r3, r2 8008522: 3312 adds r3, #18 8008524: 881b ldrh r3, [r3, #0] 8008526: b29b uxth r3, r3 8008528: 461a mov r2, r3 800852a: 496f ldr r1, [pc, #444] ; (80086e8 ) 800852c: 4613 mov r3, r2 800852e: 009b lsls r3, r3, #2 8008530: 4413 add r3, r2 8008532: 009a lsls r2, r3, #2 8008534: 4413 add r3, r2 8008536: 6afa ldr r2, [r7, #44] ; 0x2c 8008538: 4413 add r3, r2 800853a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800853e: 2303 movs r3, #3 8008540: 4621 mov r1, r4 8008542: f7fc f89f bl 8004684 } 8008546: f003 b890 b.w 800b66a LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800854a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800854e: 485a ldr r0, [pc, #360] ; (80086b8 ) 8008550: f7fb ffd2 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8008554: 79fb ldrb r3, [r7, #7] 8008556: 4a59 ldr r2, [pc, #356] ; (80086bc ) 8008558: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800855c: 79fb ldrb r3, [r7, #7] 800855e: 4a58 ldr r2, [pc, #352] ; (80086c0 ) 8008560: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008564: 4b52 ldr r3, [pc, #328] ; (80086b0 ) 8008566: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800856a: b29b uxth r3, r3 800856c: 461d mov r5, r3 800856e: 79fb ldrb r3, [r7, #7] 8008570: 4a4f ldr r2, [pc, #316] ; (80086b0 ) 8008572: 015b lsls r3, r3, #5 8008574: 4413 add r3, r2 8008576: 881b ldrh r3, [r3, #0] 8008578: b29b uxth r3, r3 800857a: 461c mov r4, r3 800857c: 4a51 ldr r2, [pc, #324] ; (80086c4 ) 800857e: 006b lsls r3, r5, #1 8008580: 4423 add r3, r4 8008582: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008586: 2303 movs r3, #3 8008588: f7fc f87c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800858c: 79fb ldrb r3, [r7, #7] 800858e: 4a4e ldr r2, [pc, #312] ; (80086c8 ) 8008590: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008594: 79fb ldrb r3, [r7, #7] 8008596: 4a4d ldr r2, [pc, #308] ; (80086cc ) 8008598: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800859c: 4b44 ldr r3, [pc, #272] ; (80086b0 ) 800859e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80085a2: b29b uxth r3, r3 80085a4: 4619 mov r1, r3 80085a6: 79fb ldrb r3, [r7, #7] 80085a8: 4a41 ldr r2, [pc, #260] ; (80086b0 ) 80085aa: 015b lsls r3, r3, #5 80085ac: 4413 add r3, r2 80085ae: 3302 adds r3, #2 80085b0: 881b ldrh r3, [r3, #0] 80085b2: b29b uxth r3, r3 80085b4: 461d mov r5, r3 80085b6: 4a46 ldr r2, [pc, #280] ; (80086d0 ) 80085b8: 460b mov r3, r1 80085ba: 009b lsls r3, r3, #2 80085bc: 440b add r3, r1 80085be: 442b add r3, r5 80085c0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80085c4: 2303 movs r3, #3 80085c6: 4621 mov r1, r4 80085c8: f7fc f85c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 80085cc: 79fb ldrb r3, [r7, #7] 80085ce: 4a41 ldr r2, [pc, #260] ; (80086d4 ) 80085d0: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80085d4: 79fb ldrb r3, [r7, #7] 80085d6: 4a40 ldr r2, [pc, #256] ; (80086d8 ) 80085d8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80085dc: 4b34 ldr r3, [pc, #208] ; (80086b0 ) 80085de: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80085e2: b29b uxth r3, r3 80085e4: 461d mov r5, r3 80085e6: 79fb ldrb r3, [r7, #7] 80085e8: 4a31 ldr r2, [pc, #196] ; (80086b0 ) 80085ea: 015b lsls r3, r3, #5 80085ec: 4413 add r3, r2 80085ee: 3304 adds r3, #4 80085f0: 881b ldrh r3, [r3, #0] 80085f2: b29b uxth r3, r3 80085f4: 461c mov r4, r3 80085f6: 4a39 ldr r2, [pc, #228] ; (80086dc ) 80085f8: 00eb lsls r3, r5, #3 80085fa: 4423 add r3, r4 80085fc: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008600: 2303 movs r3, #3 8008602: f7fc f83f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); 8008606: 79fb ldrb r3, [r7, #7] 8008608: 4a27 ldr r2, [pc, #156] ; (80086a8 ) 800860a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800860e: 79fb ldrb r3, [r7, #7] 8008610: 4a26 ldr r2, [pc, #152] ; (80086ac ) 8008612: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008616: f107 0208 add.w r2, r7, #8 800861a: 2303 movs r3, #3 800861c: f7fc f832 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8008620: 79fb ldrb r3, [r7, #7] 8008622: 4a21 ldr r2, [pc, #132] ; (80086a8 ) 8008624: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008628: 332d adds r3, #45 ; 0x2d 800862a: b298 uxth r0, r3 800862c: 79fb ldrb r3, [r7, #7] 800862e: 4a1f ldr r2, [pc, #124] ; (80086ac ) 8008630: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008634: 79fb ldrb r3, [r7, #7] 8008636: 4a1e ldr r2, [pc, #120] ; (80086b0 ) 8008638: 015b lsls r3, r3, #5 800863a: 4413 add r3, r2 800863c: 881b ldrh r3, [r3, #0] 800863e: b29b uxth r3, r3 8008640: 4619 mov r1, r3 8008642: 79fb ldrb r3, [r7, #7] 8008644: 4a1a ldr r2, [pc, #104] ; (80086b0 ) 8008646: 015b lsls r3, r3, #5 8008648: 4413 add r3, r2 800864a: 3312 adds r3, #18 800864c: 881b ldrh r3, [r3, #0] 800864e: b29b uxth r3, r3 8008650: 461d mov r5, r3 8008652: 4a18 ldr r2, [pc, #96] ; (80086b4 ) 8008654: 460b mov r3, r1 8008656: 005b lsls r3, r3, #1 8008658: 440b add r3, r1 800865a: 442b add r3, r5 800865c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008660: 2303 movs r3, #3 8008662: 4621 mov r1, r4 8008664: f7fc f80e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8008668: 79fb ldrb r3, [r7, #7] 800866a: 4a1d ldr r2, [pc, #116] ; (80086e0 ) 800866c: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008670: 79fb ldrb r3, [r7, #7] 8008672: 4a1c ldr r2, [pc, #112] ; (80086e4 ) 8008674: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008678: 79fb ldrb r3, [r7, #7] 800867a: 4a0d ldr r2, [pc, #52] ; (80086b0 ) 800867c: 015b lsls r3, r3, #5 800867e: 4413 add r3, r2 8008680: 3312 adds r3, #18 8008682: 881b ldrh r3, [r3, #0] 8008684: b29b uxth r3, r3 8008686: 461a mov r2, r3 8008688: 4917 ldr r1, [pc, #92] ; (80086e8 ) 800868a: 4613 mov r3, r2 800868c: 009b lsls r3, r3, #2 800868e: 4413 add r3, r2 8008690: 009a lsls r2, r3, #2 8008692: 4413 add r3, r2 8008694: 6afa ldr r2, [r7, #44] ; 0x2c 8008696: 4413 add r3, r2 8008698: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800869c: 2303 movs r3, #3 800869e: 4621 mov r1, r4 80086a0: f7fb fff0 bl 8004684 } 80086a4: f002 bfe1 b.w 800b66a 80086a8: 08015564 .word 0x08015564 80086ac: 0801556c .word 0x0801556c 80086b0: 2006b510 .word 0x2006b510 80086b4: 200200a8 .word 0x200200a8 80086b8: ffd8aa57 .word 0xffd8aa57 80086bc: 08015534 .word 0x08015534 80086c0: 0801553c .word 0x0801553c 80086c4: 20020030 .word 0x20020030 80086c8: 08015544 .word 0x08015544 80086cc: 0801554c .word 0x0801554c 80086d0: 20020040 .word 0x20020040 80086d4: 08015554 .word 0x08015554 80086d8: 0801555c .word 0x0801555c 80086dc: 20020068 .word 0x20020068 80086e0: 08015574 .word 0x08015574 80086e4: 0801557c .word 0x0801557c 80086e8: 200200c0 .word 0x200200c0 if(menupos == Out) 80086ec: 4b73 ldr r3, [pc, #460] ; (80088bc ) 80086ee: 781b ldrb r3, [r3, #0] 80086f0: b2db uxtb r3, r3 80086f2: 2b05 cmp r3, #5 80086f4: f040 81b9 bne.w 8008a6a if(ACTIVE_CHANNEL == ch) 80086f8: 79fa ldrb r2, [r7, #7] 80086fa: 4b71 ldr r3, [pc, #452] ; (80088c0 ) 80086fc: 681b ldr r3, [r3, #0] 80086fe: 429a cmp r2, r3 8008700: f040 8104 bne.w 800890c LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008704: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008708: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800870c: f7fb fef4 bl 80044f8 if(focused) 8008710: 4b6c ldr r3, [pc, #432] ; (80088c4 ) 8008712: 781b ldrb r3, [r3, #0] 8008714: b2db uxtb r3, r3 8008716: 2b00 cmp r3, #0 8008718: d021 beq.n 800875e if(blk) 800871a: 683b ldr r3, [r7, #0] 800871c: 2b00 cmp r3, #0 800871e: d03c beq.n 800879a BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8008720: 79fb ldrb r3, [r7, #7] 8008722: 4a69 ldr r2, [pc, #420] ; (80088c8 ) 8008724: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008728: 79fb ldrb r3, [r7, #7] 800872a: 4a68 ldr r2, [pc, #416] ; (80088cc ) 800872c: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008730: 79fb ldrb r3, [r7, #7] 8008732: 4a67 ldr r2, [pc, #412] ; (80088d0 ) 8008734: 015b lsls r3, r3, #5 8008736: 4413 add r3, r2 8008738: 3312 adds r3, #18 800873a: 881b ldrh r3, [r3, #0] 800873c: b29b uxth r3, r3 800873e: 461a mov r2, r3 8008740: 4964 ldr r1, [pc, #400] ; (80088d4 ) 8008742: 4613 mov r3, r2 8008744: 009b lsls r3, r3, #2 8008746: 4413 add r3, r2 8008748: 009a lsls r2, r3, #2 800874a: 4413 add r3, r2 800874c: 6afa ldr r2, [r7, #44] ; 0x2c 800874e: 4413 add r3, r2 8008750: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008754: 2303 movs r3, #3 8008756: 4621 mov r1, r4 8008758: f7fb ff94 bl 8004684 800875c: e01d b.n 800879a BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800875e: 79fb ldrb r3, [r7, #7] 8008760: 4a59 ldr r2, [pc, #356] ; (80088c8 ) 8008762: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008766: 79fb ldrb r3, [r7, #7] 8008768: 4a58 ldr r2, [pc, #352] ; (80088cc ) 800876a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800876e: 79fb ldrb r3, [r7, #7] 8008770: 4a57 ldr r2, [pc, #348] ; (80088d0 ) 8008772: 015b lsls r3, r3, #5 8008774: 4413 add r3, r2 8008776: 3312 adds r3, #18 8008778: 881b ldrh r3, [r3, #0] 800877a: b29b uxth r3, r3 800877c: 461a mov r2, r3 800877e: 4955 ldr r1, [pc, #340] ; (80088d4 ) 8008780: 4613 mov r3, r2 8008782: 009b lsls r3, r3, #2 8008784: 4413 add r3, r2 8008786: 009a lsls r2, r3, #2 8008788: 4413 add r3, r2 800878a: 6afa ldr r2, [r7, #44] ; 0x2c 800878c: 4413 add r3, r2 800878e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008792: 2303 movs r3, #3 8008794: 4621 mov r1, r4 8008796: f7fb ff75 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800879a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800879e: 484e ldr r0, [pc, #312] ; (80088d8 ) 80087a0: f7fb feaa bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 80087a4: 79fb ldrb r3, [r7, #7] 80087a6: 4a4d ldr r2, [pc, #308] ; (80088dc ) 80087a8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80087ac: 79fb ldrb r3, [r7, #7] 80087ae: 4a4c ldr r2, [pc, #304] ; (80088e0 ) 80087b0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80087b4: 4b46 ldr r3, [pc, #280] ; (80088d0 ) 80087b6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80087ba: b29b uxth r3, r3 80087bc: 461d mov r5, r3 80087be: 79fb ldrb r3, [r7, #7] 80087c0: 4a43 ldr r2, [pc, #268] ; (80088d0 ) 80087c2: 015b lsls r3, r3, #5 80087c4: 4413 add r3, r2 80087c6: 881b ldrh r3, [r3, #0] 80087c8: b29b uxth r3, r3 80087ca: 461c mov r4, r3 80087cc: 4a45 ldr r2, [pc, #276] ; (80088e4 ) 80087ce: 006b lsls r3, r5, #1 80087d0: 4423 add r3, r4 80087d2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80087d6: 2303 movs r3, #3 80087d8: f7fb ff54 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 80087dc: 79fb ldrb r3, [r7, #7] 80087de: 4a42 ldr r2, [pc, #264] ; (80088e8 ) 80087e0: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80087e4: 79fb ldrb r3, [r7, #7] 80087e6: 4a41 ldr r2, [pc, #260] ; (80088ec ) 80087e8: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80087ec: 4b38 ldr r3, [pc, #224] ; (80088d0 ) 80087ee: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80087f2: b29b uxth r3, r3 80087f4: 4619 mov r1, r3 80087f6: 79fb ldrb r3, [r7, #7] 80087f8: 4a35 ldr r2, [pc, #212] ; (80088d0 ) 80087fa: 015b lsls r3, r3, #5 80087fc: 4413 add r3, r2 80087fe: 3302 adds r3, #2 8008800: 881b ldrh r3, [r3, #0] 8008802: b29b uxth r3, r3 8008804: 461d mov r5, r3 8008806: 4a3a ldr r2, [pc, #232] ; (80088f0 ) 8008808: 460b mov r3, r1 800880a: 009b lsls r3, r3, #2 800880c: 440b add r3, r1 800880e: 442b add r3, r5 8008810: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008814: 2303 movs r3, #3 8008816: 4621 mov r1, r4 8008818: f7fb ff34 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800881c: 79fb ldrb r3, [r7, #7] 800881e: 4a35 ldr r2, [pc, #212] ; (80088f4 ) 8008820: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008824: 79fb ldrb r3, [r7, #7] 8008826: 4a34 ldr r2, [pc, #208] ; (80088f8 ) 8008828: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800882c: 4b28 ldr r3, [pc, #160] ; (80088d0 ) 800882e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008832: b29b uxth r3, r3 8008834: 461d mov r5, r3 8008836: 79fb ldrb r3, [r7, #7] 8008838: 4a25 ldr r2, [pc, #148] ; (80088d0 ) 800883a: 015b lsls r3, r3, #5 800883c: 4413 add r3, r2 800883e: 3304 adds r3, #4 8008840: 881b ldrh r3, [r3, #0] 8008842: b29b uxth r3, r3 8008844: 461c mov r4, r3 8008846: 4a2d ldr r2, [pc, #180] ; (80088fc ) 8008848: 00eb lsls r3, r5, #3 800884a: 4423 add r3, r4 800884c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008850: 2303 movs r3, #3 8008852: f7fb ff17 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); 8008856: 79fb ldrb r3, [r7, #7] 8008858: 4a29 ldr r2, [pc, #164] ; (8008900 ) 800885a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800885e: 79fb ldrb r3, [r7, #7] 8008860: 4a28 ldr r2, [pc, #160] ; (8008904 ) 8008862: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008866: f107 0208 add.w r2, r7, #8 800886a: 2303 movs r3, #3 800886c: f7fb ff0a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8008870: 79fb ldrb r3, [r7, #7] 8008872: 4a23 ldr r2, [pc, #140] ; (8008900 ) 8008874: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008878: 332d adds r3, #45 ; 0x2d 800887a: b298 uxth r0, r3 800887c: 79fb ldrb r3, [r7, #7] 800887e: 4a21 ldr r2, [pc, #132] ; (8008904 ) 8008880: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008884: 79fb ldrb r3, [r7, #7] 8008886: 4a12 ldr r2, [pc, #72] ; (80088d0 ) 8008888: 015b lsls r3, r3, #5 800888a: 4413 add r3, r2 800888c: 881b ldrh r3, [r3, #0] 800888e: b29b uxth r3, r3 8008890: 4619 mov r1, r3 8008892: 79fb ldrb r3, [r7, #7] 8008894: 4a0e ldr r2, [pc, #56] ; (80088d0 ) 8008896: 015b lsls r3, r3, #5 8008898: 4413 add r3, r2 800889a: 3312 adds r3, #18 800889c: 881b ldrh r3, [r3, #0] 800889e: b29b uxth r3, r3 80088a0: 461d mov r5, r3 80088a2: 4a19 ldr r2, [pc, #100] ; (8008908 ) 80088a4: 460b mov r3, r1 80088a6: 005b lsls r3, r3, #1 80088a8: 440b add r3, r1 80088aa: 442b add r3, r5 80088ac: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80088b0: 2303 movs r3, #3 80088b2: 4621 mov r1, r4 80088b4: f7fb fee6 bl 8004684 } 80088b8: f002 bed7 b.w 800b66a 80088bc: 20020010 .word 0x20020010 80088c0: 2006b2d0 .word 0x2006b2d0 80088c4: 20020250 .word 0x20020250 80088c8: 08015574 .word 0x08015574 80088cc: 0801557c .word 0x0801557c 80088d0: 2006b510 .word 0x2006b510 80088d4: 200200c0 .word 0x200200c0 80088d8: ffd8aa57 .word 0xffd8aa57 80088dc: 08015534 .word 0x08015534 80088e0: 0801553c .word 0x0801553c 80088e4: 20020030 .word 0x20020030 80088e8: 08015544 .word 0x08015544 80088ec: 0801554c .word 0x0801554c 80088f0: 20020040 .word 0x20020040 80088f4: 08015554 .word 0x08015554 80088f8: 0801555c .word 0x0801555c 80088fc: 20020068 .word 0x20020068 8008900: 08015564 .word 0x08015564 8008904: 0801556c .word 0x0801556c 8008908: 200200a8 .word 0x200200a8 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800890c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008910: 488c ldr r0, [pc, #560] ; (8008b44 ) 8008912: f7fb fdf1 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8008916: 79fb ldrb r3, [r7, #7] 8008918: 4a8b ldr r2, [pc, #556] ; (8008b48 ) 800891a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800891e: 79fb ldrb r3, [r7, #7] 8008920: 4a8a ldr r2, [pc, #552] ; (8008b4c ) 8008922: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008926: 4b8a ldr r3, [pc, #552] ; (8008b50 ) 8008928: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800892c: b29b uxth r3, r3 800892e: 461d mov r5, r3 8008930: 79fb ldrb r3, [r7, #7] 8008932: 4a87 ldr r2, [pc, #540] ; (8008b50 ) 8008934: 015b lsls r3, r3, #5 8008936: 4413 add r3, r2 8008938: 881b ldrh r3, [r3, #0] 800893a: b29b uxth r3, r3 800893c: 461c mov r4, r3 800893e: 4a85 ldr r2, [pc, #532] ; (8008b54 ) 8008940: 006b lsls r3, r5, #1 8008942: 4423 add r3, r4 8008944: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008948: 2303 movs r3, #3 800894a: f7fb fe9b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800894e: 79fb ldrb r3, [r7, #7] 8008950: 4a81 ldr r2, [pc, #516] ; (8008b58 ) 8008952: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008956: 79fb ldrb r3, [r7, #7] 8008958: 4a80 ldr r2, [pc, #512] ; (8008b5c ) 800895a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800895e: 4b7c ldr r3, [pc, #496] ; (8008b50 ) 8008960: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008964: b29b uxth r3, r3 8008966: 4619 mov r1, r3 8008968: 79fb ldrb r3, [r7, #7] 800896a: 4a79 ldr r2, [pc, #484] ; (8008b50 ) 800896c: 015b lsls r3, r3, #5 800896e: 4413 add r3, r2 8008970: 3302 adds r3, #2 8008972: 881b ldrh r3, [r3, #0] 8008974: b29b uxth r3, r3 8008976: 461d mov r5, r3 8008978: 4a79 ldr r2, [pc, #484] ; (8008b60 ) 800897a: 460b mov r3, r1 800897c: 009b lsls r3, r3, #2 800897e: 440b add r3, r1 8008980: 442b add r3, r5 8008982: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008986: 2303 movs r3, #3 8008988: 4621 mov r1, r4 800898a: f7fb fe7b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800898e: 79fb ldrb r3, [r7, #7] 8008990: 4a74 ldr r2, [pc, #464] ; (8008b64 ) 8008992: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008996: 79fb ldrb r3, [r7, #7] 8008998: 4a73 ldr r2, [pc, #460] ; (8008b68 ) 800899a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800899e: 4b6c ldr r3, [pc, #432] ; (8008b50 ) 80089a0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80089a4: b29b uxth r3, r3 80089a6: 461d mov r5, r3 80089a8: 79fb ldrb r3, [r7, #7] 80089aa: 4a69 ldr r2, [pc, #420] ; (8008b50 ) 80089ac: 015b lsls r3, r3, #5 80089ae: 4413 add r3, r2 80089b0: 3304 adds r3, #4 80089b2: 881b ldrh r3, [r3, #0] 80089b4: b29b uxth r3, r3 80089b6: 461c mov r4, r3 80089b8: 4a6c ldr r2, [pc, #432] ; (8008b6c ) 80089ba: 00eb lsls r3, r5, #3 80089bc: 4423 add r3, r4 80089be: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80089c2: 2303 movs r3, #3 80089c4: f7fb fe5e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); 80089c8: 79fb ldrb r3, [r7, #7] 80089ca: 4a69 ldr r2, [pc, #420] ; (8008b70 ) 80089cc: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80089d0: 79fb ldrb r3, [r7, #7] 80089d2: 4a68 ldr r2, [pc, #416] ; (8008b74 ) 80089d4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80089d8: f107 0208 add.w r2, r7, #8 80089dc: 2303 movs r3, #3 80089de: f7fb fe51 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 80089e2: 79fb ldrb r3, [r7, #7] 80089e4: 4a62 ldr r2, [pc, #392] ; (8008b70 ) 80089e6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80089ea: 332d adds r3, #45 ; 0x2d 80089ec: b298 uxth r0, r3 80089ee: 79fb ldrb r3, [r7, #7] 80089f0: 4a60 ldr r2, [pc, #384] ; (8008b74 ) 80089f2: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80089f6: 79fb ldrb r3, [r7, #7] 80089f8: 4a55 ldr r2, [pc, #340] ; (8008b50 ) 80089fa: 015b lsls r3, r3, #5 80089fc: 4413 add r3, r2 80089fe: 881b ldrh r3, [r3, #0] 8008a00: b29b uxth r3, r3 8008a02: 4619 mov r1, r3 8008a04: 79fb ldrb r3, [r7, #7] 8008a06: 4a52 ldr r2, [pc, #328] ; (8008b50 ) 8008a08: 015b lsls r3, r3, #5 8008a0a: 4413 add r3, r2 8008a0c: 3312 adds r3, #18 8008a0e: 881b ldrh r3, [r3, #0] 8008a10: b29b uxth r3, r3 8008a12: 461d mov r5, r3 8008a14: 4a58 ldr r2, [pc, #352] ; (8008b78 ) 8008a16: 460b mov r3, r1 8008a18: 005b lsls r3, r3, #1 8008a1a: 440b add r3, r1 8008a1c: 442b add r3, r5 8008a1e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008a22: 2303 movs r3, #3 8008a24: 4621 mov r1, r4 8008a26: f7fb fe2d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8008a2a: 79fb ldrb r3, [r7, #7] 8008a2c: 4a53 ldr r2, [pc, #332] ; (8008b7c ) 8008a2e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008a32: 79fb ldrb r3, [r7, #7] 8008a34: 4a52 ldr r2, [pc, #328] ; (8008b80 ) 8008a36: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008a3a: 79fb ldrb r3, [r7, #7] 8008a3c: 4a44 ldr r2, [pc, #272] ; (8008b50 ) 8008a3e: 015b lsls r3, r3, #5 8008a40: 4413 add r3, r2 8008a42: 3312 adds r3, #18 8008a44: 881b ldrh r3, [r3, #0] 8008a46: b29b uxth r3, r3 8008a48: 461a mov r2, r3 8008a4a: 494e ldr r1, [pc, #312] ; (8008b84 ) 8008a4c: 4613 mov r3, r2 8008a4e: 009b lsls r3, r3, #2 8008a50: 4413 add r3, r2 8008a52: 009a lsls r2, r3, #2 8008a54: 4413 add r3, r2 8008a56: 6afa ldr r2, [r7, #44] ; 0x2c 8008a58: 4413 add r3, r2 8008a5a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008a5e: 2303 movs r3, #3 8008a60: 4621 mov r1, r4 8008a62: f7fb fe0f bl 8004684 } 8008a66: f002 be00 b.w 800b66a if(menupos == Kikdt) 8008a6a: 4b47 ldr r3, [pc, #284] ; (8008b88 ) 8008a6c: 781b ldrb r3, [r3, #0] 8008a6e: b2db uxtb r3, r3 8008a70: 2b06 cmp r3, #6 8008a72: f040 8366 bne.w 8009142 if(ACTIVE_CHANNEL == ch) 8008a76: 79fa ldrb r2, [r7, #7] 8008a78: 4b44 ldr r3, [pc, #272] ; (8008b8c ) 8008a7a: 681b ldr r3, [r3, #0] 8008a7c: 429a cmp r2, r3 8008a7e: f040 82b1 bne.w 8008fe4 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 8008a82: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008a86: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8008a8a: f7fb fd35 bl 80044f8 if(blk) 8008a8e: 683b ldr r3, [r7, #0] 8008a90: 2b00 cmp r3, #0 8008a92: d00e beq.n 8008ab2 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 8008a94: 79fb ldrb r3, [r7, #7] 8008a96: 4a36 ldr r2, [pc, #216] ; (8008b70 ) 8008a98: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008a9c: 79fb ldrb r3, [r7, #7] 8008a9e: 4a35 ldr r2, [pc, #212] ; (8008b74 ) 8008aa0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008aa4: 4a3a ldr r2, [pc, #232] ; (8008b90 ) 8008aa6: 6a7b ldr r3, [r7, #36] ; 0x24 8008aa8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008aac: 2303 movs r3, #3 8008aae: f7fb fde9 bl 8004684 if(!ipt) 8008ab2: 6b3b ldr r3, [r7, #48] ; 0x30 8008ab4: 2b00 cmp r3, #0 8008ab6: d16d bne.n 8008b94 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8008ab8: 79fb ldrb r3, [r7, #7] 8008aba: 4a2d ldr r2, [pc, #180] ; (8008b70 ) 8008abc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008ac0: 3307 adds r3, #7 8008ac2: b298 uxth r0, r3 8008ac4: 79fb ldrb r3, [r7, #7] 8008ac6: 4a2b ldr r2, [pc, #172] ; (8008b74 ) 8008ac8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008acc: 4a30 ldr r2, [pc, #192] ; (8008b90 ) 8008ace: 6a3b ldr r3, [r7, #32] 8008ad0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008ad4: 2303 movs r3, #3 8008ad6: f7fb fdd5 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8008ada: 79fb ldrb r3, [r7, #7] 8008adc: 4a24 ldr r2, [pc, #144] ; (8008b70 ) 8008ade: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008ae2: 330e adds r3, #14 8008ae4: b298 uxth r0, r3 8008ae6: 79fb ldrb r3, [r7, #7] 8008ae8: 4a22 ldr r2, [pc, #136] ; (8008b74 ) 8008aea: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008aee: 4a28 ldr r2, [pc, #160] ; (8008b90 ) 8008af0: 69fb ldr r3, [r7, #28] 8008af2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008af6: 2303 movs r3, #3 8008af8: f7fb fdc4 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8008afc: 79fb ldrb r3, [r7, #7] 8008afe: 4a1c ldr r2, [pc, #112] ; (8008b70 ) 8008b00: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008b04: 3315 adds r3, #21 8008b06: b298 uxth r0, r3 8008b08: 79fb ldrb r3, [r7, #7] 8008b0a: 4a1a ldr r2, [pc, #104] ; (8008b74 ) 8008b0c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008b10: 4a1f ldr r2, [pc, #124] ; (8008b90 ) 8008b12: 69bb ldr r3, [r7, #24] 8008b14: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008b18: 2303 movs r3, #3 8008b1a: f7fb fdb3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8008b1e: 79fb ldrb r3, [r7, #7] 8008b20: 4a13 ldr r2, [pc, #76] ; (8008b70 ) 8008b22: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008b26: 331c adds r3, #28 8008b28: b298 uxth r0, r3 8008b2a: 79fb ldrb r3, [r7, #7] 8008b2c: 4a11 ldr r2, [pc, #68] ; (8008b74 ) 8008b2e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008b32: 4a17 ldr r2, [pc, #92] ; (8008b90 ) 8008b34: 697b ldr r3, [r7, #20] 8008b36: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008b3a: 2303 movs r3, #3 8008b3c: f7fb fda2 bl 8004684 8008b40: e187 b.n 8008e52 8008b42: bf00 nop 8008b44: ffd8aa57 .word 0xffd8aa57 8008b48: 08015534 .word 0x08015534 8008b4c: 0801553c .word 0x0801553c 8008b50: 2006b510 .word 0x2006b510 8008b54: 20020030 .word 0x20020030 8008b58: 08015544 .word 0x08015544 8008b5c: 0801554c .word 0x0801554c 8008b60: 20020040 .word 0x20020040 8008b64: 08015554 .word 0x08015554 8008b68: 0801555c .word 0x0801555c 8008b6c: 20020068 .word 0x20020068 8008b70: 08015564 .word 0x08015564 8008b74: 0801556c .word 0x0801556c 8008b78: 200200a8 .word 0x200200a8 8008b7c: 08015574 .word 0x08015574 8008b80: 0801557c .word 0x0801557c 8008b84: 200200c0 .word 0x200200c0 8008b88: 20020010 .word 0x20020010 8008b8c: 2006b2d0 .word 0x2006b2d0 8008b90: 200201ec .word 0x200201ec if(ipt == 1) 8008b94: 6b3b ldr r3, [r7, #48] ; 0x30 8008b96: 2b01 cmp r3, #1 8008b98: d152 bne.n 8008c40 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8008b9a: 79fb ldrb r3, [r7, #7] 8008b9c: 4a7e ldr r2, [pc, #504] ; (8008d98 ) 8008b9e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008ba2: 3307 adds r3, #7 8008ba4: b298 uxth r0, r3 8008ba6: 79fb ldrb r3, [r7, #7] 8008ba8: 4a7c ldr r2, [pc, #496] ; (8008d9c ) 8008baa: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008bae: 4a7c ldr r2, [pc, #496] ; (8008da0 ) 8008bb0: 6a3b ldr r3, [r7, #32] 8008bb2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008bb6: 2303 movs r3, #3 8008bb8: f7fb fd64 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8008bbc: 79fb ldrb r3, [r7, #7] 8008bbe: 4a76 ldr r2, [pc, #472] ; (8008d98 ) 8008bc0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008bc4: 330e adds r3, #14 8008bc6: b298 uxth r0, r3 8008bc8: 79fb ldrb r3, [r7, #7] 8008bca: 4a74 ldr r2, [pc, #464] ; (8008d9c ) 8008bcc: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008bd0: 4a73 ldr r2, [pc, #460] ; (8008da0 ) 8008bd2: 69fb ldr r3, [r7, #28] 8008bd4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008bd8: 2303 movs r3, #3 8008bda: f7fb fd53 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8008bde: 79fb ldrb r3, [r7, #7] 8008be0: 4a6d ldr r2, [pc, #436] ; (8008d98 ) 8008be2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008be6: 3315 adds r3, #21 8008be8: b298 uxth r0, r3 8008bea: 79fb ldrb r3, [r7, #7] 8008bec: 4a6b ldr r2, [pc, #428] ; (8008d9c ) 8008bee: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008bf2: 4a6b ldr r2, [pc, #428] ; (8008da0 ) 8008bf4: 69bb ldr r3, [r7, #24] 8008bf6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008bfa: 2303 movs r3, #3 8008bfc: f7fb fd42 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE); 8008c00: 79fb ldrb r3, [r7, #7] 8008c02: 4a65 ldr r2, [pc, #404] ; (8008d98 ) 8008c04: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008c08: 331c adds r3, #28 8008c0a: b298 uxth r0, r3 8008c0c: 79fb ldrb r3, [r7, #7] 8008c0e: 4a63 ldr r2, [pc, #396] ; (8008d9c ) 8008c10: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008c14: 2303 movs r3, #3 8008c16: 4a63 ldr r2, [pc, #396] ; (8008da4 ) 8008c18: f7fb fd34 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8008c1c: 79fb ldrb r3, [r7, #7] 8008c1e: 4a5e ldr r2, [pc, #376] ; (8008d98 ) 8008c20: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008c24: 3323 adds r3, #35 ; 0x23 8008c26: b298 uxth r0, r3 8008c28: 79fb ldrb r3, [r7, #7] 8008c2a: 4a5c ldr r2, [pc, #368] ; (8008d9c ) 8008c2c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008c30: 4a5b ldr r2, [pc, #364] ; (8008da0 ) 8008c32: 697b ldr r3, [r7, #20] 8008c34: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008c38: 2303 movs r3, #3 8008c3a: f7fb fd23 bl 8004684 8008c3e: e108 b.n 8008e52 if(ipt == 2) 8008c40: 6b3b ldr r3, [r7, #48] ; 0x30 8008c42: 2b02 cmp r3, #2 8008c44: d152 bne.n 8008cec BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8008c46: 79fb ldrb r3, [r7, #7] 8008c48: 4a53 ldr r2, [pc, #332] ; (8008d98 ) 8008c4a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008c4e: 3307 adds r3, #7 8008c50: b298 uxth r0, r3 8008c52: 79fb ldrb r3, [r7, #7] 8008c54: 4a51 ldr r2, [pc, #324] ; (8008d9c ) 8008c56: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008c5a: 4a51 ldr r2, [pc, #324] ; (8008da0 ) 8008c5c: 6a3b ldr r3, [r7, #32] 8008c5e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008c62: 2303 movs r3, #3 8008c64: f7fb fd0e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8008c68: 79fb ldrb r3, [r7, #7] 8008c6a: 4a4b ldr r2, [pc, #300] ; (8008d98 ) 8008c6c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008c70: 330e adds r3, #14 8008c72: b298 uxth r0, r3 8008c74: 79fb ldrb r3, [r7, #7] 8008c76: 4a49 ldr r2, [pc, #292] ; (8008d9c ) 8008c78: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008c7c: 4a48 ldr r2, [pc, #288] ; (8008da0 ) 8008c7e: 69fb ldr r3, [r7, #28] 8008c80: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008c84: 2303 movs r3, #3 8008c86: f7fb fcfd bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE); 8008c8a: 79fb ldrb r3, [r7, #7] 8008c8c: 4a42 ldr r2, [pc, #264] ; (8008d98 ) 8008c8e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008c92: 3315 adds r3, #21 8008c94: b298 uxth r0, r3 8008c96: 79fb ldrb r3, [r7, #7] 8008c98: 4a40 ldr r2, [pc, #256] ; (8008d9c ) 8008c9a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008c9e: 2303 movs r3, #3 8008ca0: 4a40 ldr r2, [pc, #256] ; (8008da4 ) 8008ca2: f7fb fcef bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8008ca6: 79fb ldrb r3, [r7, #7] 8008ca8: 4a3b ldr r2, [pc, #236] ; (8008d98 ) 8008caa: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008cae: 331c adds r3, #28 8008cb0: b298 uxth r0, r3 8008cb2: 79fb ldrb r3, [r7, #7] 8008cb4: 4a39 ldr r2, [pc, #228] ; (8008d9c ) 8008cb6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008cba: 4a39 ldr r2, [pc, #228] ; (8008da0 ) 8008cbc: 69bb ldr r3, [r7, #24] 8008cbe: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008cc2: 2303 movs r3, #3 8008cc4: f7fb fcde bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8008cc8: 79fb ldrb r3, [r7, #7] 8008cca: 4a33 ldr r2, [pc, #204] ; (8008d98 ) 8008ccc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008cd0: 3323 adds r3, #35 ; 0x23 8008cd2: b298 uxth r0, r3 8008cd4: 79fb ldrb r3, [r7, #7] 8008cd6: 4a31 ldr r2, [pc, #196] ; (8008d9c ) 8008cd8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008cdc: 4a30 ldr r2, [pc, #192] ; (8008da0 ) 8008cde: 697b ldr r3, [r7, #20] 8008ce0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008ce4: 2303 movs r3, #3 8008ce6: f7fb fccd bl 8004684 8008cea: e0b2 b.n 8008e52 if(ipt == 3) 8008cec: 6b3b ldr r3, [r7, #48] ; 0x30 8008cee: 2b03 cmp r3, #3 8008cf0: d15a bne.n 8008da8 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8008cf2: 79fb ldrb r3, [r7, #7] 8008cf4: 4a28 ldr r2, [pc, #160] ; (8008d98 ) 8008cf6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008cfa: 3307 adds r3, #7 8008cfc: b298 uxth r0, r3 8008cfe: 79fb ldrb r3, [r7, #7] 8008d00: 4a26 ldr r2, [pc, #152] ; (8008d9c ) 8008d02: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008d06: 4a26 ldr r2, [pc, #152] ; (8008da0 ) 8008d08: 6a3b ldr r3, [r7, #32] 8008d0a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008d0e: 2303 movs r3, #3 8008d10: f7fb fcb8 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE); 8008d14: 79fb ldrb r3, [r7, #7] 8008d16: 4a20 ldr r2, [pc, #128] ; (8008d98 ) 8008d18: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008d1c: 330e adds r3, #14 8008d1e: b298 uxth r0, r3 8008d20: 79fb ldrb r3, [r7, #7] 8008d22: 4a1e ldr r2, [pc, #120] ; (8008d9c ) 8008d24: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008d28: 2303 movs r3, #3 8008d2a: 4a1e ldr r2, [pc, #120] ; (8008da4 ) 8008d2c: f7fb fcaa bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8008d30: 79fb ldrb r3, [r7, #7] 8008d32: 4a19 ldr r2, [pc, #100] ; (8008d98 ) 8008d34: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008d38: 3315 adds r3, #21 8008d3a: b298 uxth r0, r3 8008d3c: 79fb ldrb r3, [r7, #7] 8008d3e: 4a17 ldr r2, [pc, #92] ; (8008d9c ) 8008d40: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008d44: 4a16 ldr r2, [pc, #88] ; (8008da0 ) 8008d46: 69fb ldr r3, [r7, #28] 8008d48: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008d4c: 2303 movs r3, #3 8008d4e: f7fb fc99 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8008d52: 79fb ldrb r3, [r7, #7] 8008d54: 4a10 ldr r2, [pc, #64] ; (8008d98 ) 8008d56: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008d5a: 331c adds r3, #28 8008d5c: b298 uxth r0, r3 8008d5e: 79fb ldrb r3, [r7, #7] 8008d60: 4a0e ldr r2, [pc, #56] ; (8008d9c ) 8008d62: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008d66: 4a0e ldr r2, [pc, #56] ; (8008da0 ) 8008d68: 69bb ldr r3, [r7, #24] 8008d6a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008d6e: 2303 movs r3, #3 8008d70: f7fb fc88 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8008d74: 79fb ldrb r3, [r7, #7] 8008d76: 4a08 ldr r2, [pc, #32] ; (8008d98 ) 8008d78: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008d7c: 3323 adds r3, #35 ; 0x23 8008d7e: b298 uxth r0, r3 8008d80: 79fb ldrb r3, [r7, #7] 8008d82: 4a06 ldr r2, [pc, #24] ; (8008d9c ) 8008d84: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008d88: 4a05 ldr r2, [pc, #20] ; (8008da0 ) 8008d8a: 697b ldr r3, [r7, #20] 8008d8c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008d90: 2303 movs r3, #3 8008d92: f7fb fc77 bl 8004684 8008d96: e05c b.n 8008e52 8008d98: 08015564 .word 0x08015564 8008d9c: 0801556c .word 0x0801556c 8008da0: 200201ec .word 0x200201ec 8008da4: 08012cb8 .word 0x08012cb8 if(ipt == 4) 8008da8: 6b3b ldr r3, [r7, #48] ; 0x30 8008daa: 2b04 cmp r3, #4 8008dac: d151 bne.n 8008e52 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE); 8008dae: 79fb ldrb r3, [r7, #7] 8008db0: 4a79 ldr r2, [pc, #484] ; (8008f98 ) 8008db2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008db6: 3307 adds r3, #7 8008db8: b298 uxth r0, r3 8008dba: 79fb ldrb r3, [r7, #7] 8008dbc: 4a77 ldr r2, [pc, #476] ; (8008f9c ) 8008dbe: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008dc2: 2303 movs r3, #3 8008dc4: 4a76 ldr r2, [pc, #472] ; (8008fa0 ) 8008dc6: f7fb fc5d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8008dca: 79fb ldrb r3, [r7, #7] 8008dcc: 4a72 ldr r2, [pc, #456] ; (8008f98 ) 8008dce: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008dd2: 330e adds r3, #14 8008dd4: b298 uxth r0, r3 8008dd6: 79fb ldrb r3, [r7, #7] 8008dd8: 4a70 ldr r2, [pc, #448] ; (8008f9c ) 8008dda: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008dde: 4a71 ldr r2, [pc, #452] ; (8008fa4 ) 8008de0: 6a3b ldr r3, [r7, #32] 8008de2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008de6: 2303 movs r3, #3 8008de8: f7fb fc4c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8008dec: 79fb ldrb r3, [r7, #7] 8008dee: 4a6a ldr r2, [pc, #424] ; (8008f98 ) 8008df0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008df4: 3315 adds r3, #21 8008df6: b298 uxth r0, r3 8008df8: 79fb ldrb r3, [r7, #7] 8008dfa: 4a68 ldr r2, [pc, #416] ; (8008f9c ) 8008dfc: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008e00: 4a68 ldr r2, [pc, #416] ; (8008fa4 ) 8008e02: 69fb ldr r3, [r7, #28] 8008e04: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008e08: 2303 movs r3, #3 8008e0a: f7fb fc3b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8008e0e: 79fb ldrb r3, [r7, #7] 8008e10: 4a61 ldr r2, [pc, #388] ; (8008f98 ) 8008e12: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008e16: 331c adds r3, #28 8008e18: b298 uxth r0, r3 8008e1a: 79fb ldrb r3, [r7, #7] 8008e1c: 4a5f ldr r2, [pc, #380] ; (8008f9c ) 8008e1e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008e22: 4a60 ldr r2, [pc, #384] ; (8008fa4 ) 8008e24: 69bb ldr r3, [r7, #24] 8008e26: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008e2a: 2303 movs r3, #3 8008e2c: f7fb fc2a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8008e30: 79fb ldrb r3, [r7, #7] 8008e32: 4a59 ldr r2, [pc, #356] ; (8008f98 ) 8008e34: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008e38: 3323 adds r3, #35 ; 0x23 8008e3a: b298 uxth r0, r3 8008e3c: 79fb ldrb r3, [r7, #7] 8008e3e: 4a57 ldr r2, [pc, #348] ; (8008f9c ) 8008e40: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008e44: 4a57 ldr r2, [pc, #348] ; (8008fa4 ) 8008e46: 697b ldr r3, [r7, #20] 8008e48: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008e4c: 2303 movs r3, #3 8008e4e: f7fb fc19 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008e52: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008e56: 4854 ldr r0, [pc, #336] ; (8008fa8 ) 8008e58: f7fb fb4e bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8008e5c: 79fb ldrb r3, [r7, #7] 8008e5e: 4a53 ldr r2, [pc, #332] ; (8008fac ) 8008e60: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008e64: 79fb ldrb r3, [r7, #7] 8008e66: 4a52 ldr r2, [pc, #328] ; (8008fb0 ) 8008e68: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008e6c: 4b51 ldr r3, [pc, #324] ; (8008fb4 ) 8008e6e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008e72: b29b uxth r3, r3 8008e74: 461d mov r5, r3 8008e76: 79fb ldrb r3, [r7, #7] 8008e78: 4a4e ldr r2, [pc, #312] ; (8008fb4 ) 8008e7a: 015b lsls r3, r3, #5 8008e7c: 4413 add r3, r2 8008e7e: 881b ldrh r3, [r3, #0] 8008e80: b29b uxth r3, r3 8008e82: 461c mov r4, r3 8008e84: 4a4c ldr r2, [pc, #304] ; (8008fb8 ) 8008e86: 006b lsls r3, r5, #1 8008e88: 4423 add r3, r4 8008e8a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008e8e: 2303 movs r3, #3 8008e90: f7fb fbf8 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8008e94: 79fb ldrb r3, [r7, #7] 8008e96: 4a49 ldr r2, [pc, #292] ; (8008fbc ) 8008e98: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008e9c: 79fb ldrb r3, [r7, #7] 8008e9e: 4a48 ldr r2, [pc, #288] ; (8008fc0 ) 8008ea0: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008ea4: 4b43 ldr r3, [pc, #268] ; (8008fb4 ) 8008ea6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008eaa: b29b uxth r3, r3 8008eac: 4619 mov r1, r3 8008eae: 79fb ldrb r3, [r7, #7] 8008eb0: 4a40 ldr r2, [pc, #256] ; (8008fb4 ) 8008eb2: 015b lsls r3, r3, #5 8008eb4: 4413 add r3, r2 8008eb6: 3302 adds r3, #2 8008eb8: 881b ldrh r3, [r3, #0] 8008eba: b29b uxth r3, r3 8008ebc: 461d mov r5, r3 8008ebe: 4a41 ldr r2, [pc, #260] ; (8008fc4 ) 8008ec0: 460b mov r3, r1 8008ec2: 009b lsls r3, r3, #2 8008ec4: 440b add r3, r1 8008ec6: 442b add r3, r5 8008ec8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008ecc: 2303 movs r3, #3 8008ece: 4621 mov r1, r4 8008ed0: f7fb fbd8 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8008ed4: 79fb ldrb r3, [r7, #7] 8008ed6: 4a3c ldr r2, [pc, #240] ; (8008fc8 ) 8008ed8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008edc: 79fb ldrb r3, [r7, #7] 8008ede: 4a3b ldr r2, [pc, #236] ; (8008fcc ) 8008ee0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008ee4: 4b33 ldr r3, [pc, #204] ; (8008fb4 ) 8008ee6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8008eea: b29b uxth r3, r3 8008eec: 461d mov r5, r3 8008eee: 79fb ldrb r3, [r7, #7] 8008ef0: 4a30 ldr r2, [pc, #192] ; (8008fb4 ) 8008ef2: 015b lsls r3, r3, #5 8008ef4: 4413 add r3, r2 8008ef6: 3304 adds r3, #4 8008ef8: 881b ldrh r3, [r3, #0] 8008efa: b29b uxth r3, r3 8008efc: 461c mov r4, r3 8008efe: 4a34 ldr r2, [pc, #208] ; (8008fd0 ) 8008f00: 00eb lsls r3, r5, #3 8008f02: 4423 add r3, r4 8008f04: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008f08: 2303 movs r3, #3 8008f0a: f7fb fbbb bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8008f0e: 79fb ldrb r3, [r7, #7] 8008f10: 4a21 ldr r2, [pc, #132] ; (8008f98 ) 8008f12: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8008f16: 332d adds r3, #45 ; 0x2d 8008f18: b298 uxth r0, r3 8008f1a: 79fb ldrb r3, [r7, #7] 8008f1c: 4a1f ldr r2, [pc, #124] ; (8008f9c ) 8008f1e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008f22: 79fb ldrb r3, [r7, #7] 8008f24: 4a23 ldr r2, [pc, #140] ; (8008fb4 ) 8008f26: 015b lsls r3, r3, #5 8008f28: 4413 add r3, r2 8008f2a: 881b ldrh r3, [r3, #0] 8008f2c: b29b uxth r3, r3 8008f2e: 4619 mov r1, r3 8008f30: 79fb ldrb r3, [r7, #7] 8008f32: 4a20 ldr r2, [pc, #128] ; (8008fb4 ) 8008f34: 015b lsls r3, r3, #5 8008f36: 4413 add r3, r2 8008f38: 3312 adds r3, #18 8008f3a: 881b ldrh r3, [r3, #0] 8008f3c: b29b uxth r3, r3 8008f3e: 461d mov r5, r3 8008f40: 4a24 ldr r2, [pc, #144] ; (8008fd4 ) 8008f42: 460b mov r3, r1 8008f44: 005b lsls r3, r3, #1 8008f46: 440b add r3, r1 8008f48: 442b add r3, r5 8008f4a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8008f4e: 2303 movs r3, #3 8008f50: 4621 mov r1, r4 8008f52: f7fb fb97 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8008f56: 79fb ldrb r3, [r7, #7] 8008f58: 4a1f ldr r2, [pc, #124] ; (8008fd8 ) 8008f5a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008f5e: 79fb ldrb r3, [r7, #7] 8008f60: 4a1e ldr r2, [pc, #120] ; (8008fdc ) 8008f62: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8008f66: 79fb ldrb r3, [r7, #7] 8008f68: 4a12 ldr r2, [pc, #72] ; (8008fb4 ) 8008f6a: 015b lsls r3, r3, #5 8008f6c: 4413 add r3, r2 8008f6e: 3312 adds r3, #18 8008f70: 881b ldrh r3, [r3, #0] 8008f72: b29b uxth r3, r3 8008f74: 461a mov r2, r3 8008f76: 491a ldr r1, [pc, #104] ; (8008fe0 ) 8008f78: 4613 mov r3, r2 8008f7a: 009b lsls r3, r3, #2 8008f7c: 4413 add r3, r2 8008f7e: 009a lsls r2, r3, #2 8008f80: 4413 add r3, r2 8008f82: 6afa ldr r2, [r7, #44] ; 0x2c 8008f84: 4413 add r3, r2 8008f86: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8008f8a: 2303 movs r3, #3 8008f8c: 4621 mov r1, r4 8008f8e: f7fb fb79 bl 8004684 } 8008f92: f002 bb6a b.w 800b66a 8008f96: bf00 nop 8008f98: 08015564 .word 0x08015564 8008f9c: 0801556c .word 0x0801556c 8008fa0: 08012cb8 .word 0x08012cb8 8008fa4: 200201ec .word 0x200201ec 8008fa8: ffd8aa57 .word 0xffd8aa57 8008fac: 08015534 .word 0x08015534 8008fb0: 0801553c .word 0x0801553c 8008fb4: 2006b510 .word 0x2006b510 8008fb8: 20020030 .word 0x20020030 8008fbc: 08015544 .word 0x08015544 8008fc0: 0801554c .word 0x0801554c 8008fc4: 20020040 .word 0x20020040 8008fc8: 08015554 .word 0x08015554 8008fcc: 0801555c .word 0x0801555c 8008fd0: 20020068 .word 0x20020068 8008fd4: 200200a8 .word 0x200200a8 8008fd8: 08015574 .word 0x08015574 8008fdc: 0801557c .word 0x0801557c 8008fe0: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8008fe4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8008fe8: 488c ldr r0, [pc, #560] ; (800921c ) 8008fea: f7fb fa85 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8008fee: 79fb ldrb r3, [r7, #7] 8008ff0: 4a8b ldr r2, [pc, #556] ; (8009220 ) 8008ff2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8008ff6: 79fb ldrb r3, [r7, #7] 8008ff8: 4a8a ldr r2, [pc, #552] ; (8009224 ) 8008ffa: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8008ffe: 4b8a ldr r3, [pc, #552] ; (8009228 ) 8009000: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009004: b29b uxth r3, r3 8009006: 461d mov r5, r3 8009008: 79fb ldrb r3, [r7, #7] 800900a: 4a87 ldr r2, [pc, #540] ; (8009228 ) 800900c: 015b lsls r3, r3, #5 800900e: 4413 add r3, r2 8009010: 881b ldrh r3, [r3, #0] 8009012: b29b uxth r3, r3 8009014: 461c mov r4, r3 8009016: 4a85 ldr r2, [pc, #532] ; (800922c ) 8009018: 006b lsls r3, r5, #1 800901a: 4423 add r3, r4 800901c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009020: 2303 movs r3, #3 8009022: f7fb fb2f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8009026: 79fb ldrb r3, [r7, #7] 8009028: 4a81 ldr r2, [pc, #516] ; (8009230 ) 800902a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800902e: 79fb ldrb r3, [r7, #7] 8009030: 4a80 ldr r2, [pc, #512] ; (8009234 ) 8009032: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009036: 4b7c ldr r3, [pc, #496] ; (8009228 ) 8009038: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800903c: b29b uxth r3, r3 800903e: 4619 mov r1, r3 8009040: 79fb ldrb r3, [r7, #7] 8009042: 4a79 ldr r2, [pc, #484] ; (8009228 ) 8009044: 015b lsls r3, r3, #5 8009046: 4413 add r3, r2 8009048: 3302 adds r3, #2 800904a: 881b ldrh r3, [r3, #0] 800904c: b29b uxth r3, r3 800904e: 461d mov r5, r3 8009050: 4a79 ldr r2, [pc, #484] ; (8009238 ) 8009052: 460b mov r3, r1 8009054: 009b lsls r3, r3, #2 8009056: 440b add r3, r1 8009058: 442b add r3, r5 800905a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800905e: 2303 movs r3, #3 8009060: 4621 mov r1, r4 8009062: f7fb fb0f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8009066: 79fb ldrb r3, [r7, #7] 8009068: 4a74 ldr r2, [pc, #464] ; (800923c ) 800906a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800906e: 79fb ldrb r3, [r7, #7] 8009070: 4a73 ldr r2, [pc, #460] ; (8009240 ) 8009072: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009076: 4b6c ldr r3, [pc, #432] ; (8009228 ) 8009078: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800907c: b29b uxth r3, r3 800907e: 461d mov r5, r3 8009080: 79fb ldrb r3, [r7, #7] 8009082: 4a69 ldr r2, [pc, #420] ; (8009228 ) 8009084: 015b lsls r3, r3, #5 8009086: 4413 add r3, r2 8009088: 3304 adds r3, #4 800908a: 881b ldrh r3, [r3, #0] 800908c: b29b uxth r3, r3 800908e: 461c mov r4, r3 8009090: 4a6c ldr r2, [pc, #432] ; (8009244 ) 8009092: 00eb lsls r3, r5, #3 8009094: 4423 add r3, r4 8009096: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800909a: 2303 movs r3, #3 800909c: f7fb faf2 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 80090a0: 79fb ldrb r3, [r7, #7] 80090a2: 4a69 ldr r2, [pc, #420] ; (8009248 ) 80090a4: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80090a8: 79fb ldrb r3, [r7, #7] 80090aa: 4a68 ldr r2, [pc, #416] ; (800924c ) 80090ac: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80090b0: f107 0208 add.w r2, r7, #8 80090b4: 2303 movs r3, #3 80090b6: f7fb fae5 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 80090ba: 79fb ldrb r3, [r7, #7] 80090bc: 4a62 ldr r2, [pc, #392] ; (8009248 ) 80090be: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80090c2: 332d adds r3, #45 ; 0x2d 80090c4: b298 uxth r0, r3 80090c6: 79fb ldrb r3, [r7, #7] 80090c8: 4a60 ldr r2, [pc, #384] ; (800924c ) 80090ca: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80090ce: 79fb ldrb r3, [r7, #7] 80090d0: 4a55 ldr r2, [pc, #340] ; (8009228 ) 80090d2: 015b lsls r3, r3, #5 80090d4: 4413 add r3, r2 80090d6: 881b ldrh r3, [r3, #0] 80090d8: b29b uxth r3, r3 80090da: 4619 mov r1, r3 80090dc: 79fb ldrb r3, [r7, #7] 80090de: 4a52 ldr r2, [pc, #328] ; (8009228 ) 80090e0: 015b lsls r3, r3, #5 80090e2: 4413 add r3, r2 80090e4: 3312 adds r3, #18 80090e6: 881b ldrh r3, [r3, #0] 80090e8: b29b uxth r3, r3 80090ea: 461d mov r5, r3 80090ec: 4a58 ldr r2, [pc, #352] ; (8009250 ) 80090ee: 460b mov r3, r1 80090f0: 005b lsls r3, r3, #1 80090f2: 440b add r3, r1 80090f4: 442b add r3, r5 80090f6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80090fa: 2303 movs r3, #3 80090fc: 4621 mov r1, r4 80090fe: f7fb fac1 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8009102: 79fb ldrb r3, [r7, #7] 8009104: 4a53 ldr r2, [pc, #332] ; (8009254 ) 8009106: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800910a: 79fb ldrb r3, [r7, #7] 800910c: 4a52 ldr r2, [pc, #328] ; (8009258 ) 800910e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009112: 79fb ldrb r3, [r7, #7] 8009114: 4a44 ldr r2, [pc, #272] ; (8009228 ) 8009116: 015b lsls r3, r3, #5 8009118: 4413 add r3, r2 800911a: 3312 adds r3, #18 800911c: 881b ldrh r3, [r3, #0] 800911e: b29b uxth r3, r3 8009120: 461a mov r2, r3 8009122: 494e ldr r1, [pc, #312] ; (800925c ) 8009124: 4613 mov r3, r2 8009126: 009b lsls r3, r3, #2 8009128: 4413 add r3, r2 800912a: 009a lsls r2, r3, #2 800912c: 4413 add r3, r2 800912e: 6afa ldr r2, [r7, #44] ; 0x2c 8009130: 4413 add r3, r2 8009132: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8009136: 2303 movs r3, #3 8009138: 4621 mov r1, r4 800913a: f7fb faa3 bl 8004684 } 800913e: f002 ba94 b.w 800b66a if(menupos == Kikt) 8009142: 4b47 ldr r3, [pc, #284] ; (8009260 ) 8009144: 781b ldrb r3, [r3, #0] 8009146: b2db uxtb r3, r3 8009148: 2b07 cmp r3, #7 800914a: f040 83ae bne.w 80098aa if(ACTIVE_CHANNEL == ch) 800914e: 79fa ldrb r2, [r7, #7] 8009150: 4b44 ldr r3, [pc, #272] ; (8009264 ) 8009152: 681b ldr r3, [r3, #0] 8009154: 429a cmp r2, r3 8009156: f040 82f9 bne.w 800974c LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800915a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800915e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 8009162: f7fb f9c9 bl 80044f8 if(!ipt) 8009166: 6b3b ldr r3, [r7, #48] ; 0x30 8009168: 2b00 cmp r3, #0 800916a: d17f bne.n 800926c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800916c: 79fb ldrb r3, [r7, #7] 800916e: 4a36 ldr r2, [pc, #216] ; (8009248 ) 8009170: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009174: 79fb ldrb r3, [r7, #7] 8009176: 4a35 ldr r2, [pc, #212] ; (800924c ) 8009178: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800917c: 4a3a ldr r2, [pc, #232] ; (8009268 ) 800917e: 6a7b ldr r3, [r7, #36] ; 0x24 8009180: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009184: 2303 movs r3, #3 8009186: f7fb fa7d bl 8004684 if(blk) 800918a: 683b ldr r3, [r7, #0] 800918c: 2b00 cmp r3, #0 800918e: d010 beq.n 80091b2 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009190: 79fb ldrb r3, [r7, #7] 8009192: 4a2d ldr r2, [pc, #180] ; (8009248 ) 8009194: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009198: 3307 adds r3, #7 800919a: b298 uxth r0, r3 800919c: 79fb ldrb r3, [r7, #7] 800919e: 4a2b ldr r2, [pc, #172] ; (800924c ) 80091a0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80091a4: 4a30 ldr r2, [pc, #192] ; (8009268 ) 80091a6: 6a3b ldr r3, [r7, #32] 80091a8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80091ac: 2303 movs r3, #3 80091ae: f7fb fa69 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 80091b2: 79fb ldrb r3, [r7, #7] 80091b4: 4a24 ldr r2, [pc, #144] ; (8009248 ) 80091b6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80091ba: 330e adds r3, #14 80091bc: b298 uxth r0, r3 80091be: 79fb ldrb r3, [r7, #7] 80091c0: 4a22 ldr r2, [pc, #136] ; (800924c ) 80091c2: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80091c6: 4a28 ldr r2, [pc, #160] ; (8009268 ) 80091c8: 69fb ldr r3, [r7, #28] 80091ca: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80091ce: 2303 movs r3, #3 80091d0: f7fb fa58 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 80091d4: 79fb ldrb r3, [r7, #7] 80091d6: 4a1c ldr r2, [pc, #112] ; (8009248 ) 80091d8: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80091dc: 3315 adds r3, #21 80091de: b298 uxth r0, r3 80091e0: 79fb ldrb r3, [r7, #7] 80091e2: 4a1a ldr r2, [pc, #104] ; (800924c ) 80091e4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80091e8: 4a1f ldr r2, [pc, #124] ; (8009268 ) 80091ea: 69bb ldr r3, [r7, #24] 80091ec: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80091f0: 2303 movs r3, #3 80091f2: f7fb fa47 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 80091f6: 79fb ldrb r3, [r7, #7] 80091f8: 4a13 ldr r2, [pc, #76] ; (8009248 ) 80091fa: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80091fe: 331c adds r3, #28 8009200: b298 uxth r0, r3 8009202: 79fb ldrb r3, [r7, #7] 8009204: 4a11 ldr r2, [pc, #68] ; (800924c ) 8009206: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800920a: 4a17 ldr r2, [pc, #92] ; (8009268 ) 800920c: 697b ldr r3, [r7, #20] 800920e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009212: 2303 movs r3, #3 8009214: f7fb fa36 bl 8004684 8009218: e1cf b.n 80095ba 800921a: bf00 nop 800921c: ffd8aa57 .word 0xffd8aa57 8009220: 08015534 .word 0x08015534 8009224: 0801553c .word 0x0801553c 8009228: 2006b510 .word 0x2006b510 800922c: 20020030 .word 0x20020030 8009230: 08015544 .word 0x08015544 8009234: 0801554c .word 0x0801554c 8009238: 20020040 .word 0x20020040 800923c: 08015554 .word 0x08015554 8009240: 0801555c .word 0x0801555c 8009244: 20020068 .word 0x20020068 8009248: 08015564 .word 0x08015564 800924c: 0801556c .word 0x0801556c 8009250: 200200a8 .word 0x200200a8 8009254: 08015574 .word 0x08015574 8009258: 0801557c .word 0x0801557c 800925c: 200200c0 .word 0x200200c0 8009260: 20020010 .word 0x20020010 8009264: 2006b2d0 .word 0x2006b2d0 8009268: 200201ec .word 0x200201ec if(ipt == 1) 800926c: 6b3b ldr r3, [r7, #48] ; 0x30 800926e: 2b01 cmp r3, #1 8009270: d164 bne.n 800933c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 8009272: 79fb ldrb r3, [r7, #7] 8009274: 4a99 ldr r2, [pc, #612] ; (80094dc ) 8009276: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800927a: 79fb ldrb r3, [r7, #7] 800927c: 4a98 ldr r2, [pc, #608] ; (80094e0 ) 800927e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009282: 4a98 ldr r2, [pc, #608] ; (80094e4 ) 8009284: 6a7b ldr r3, [r7, #36] ; 0x24 8009286: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800928a: 2303 movs r3, #3 800928c: f7fb f9fa bl 8004684 if(blk) 8009290: 683b ldr r3, [r7, #0] 8009292: 2b00 cmp r3, #0 8009294: d010 beq.n 80092b8 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009296: 79fb ldrb r3, [r7, #7] 8009298: 4a90 ldr r2, [pc, #576] ; (80094dc ) 800929a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800929e: 3307 adds r3, #7 80092a0: b298 uxth r0, r3 80092a2: 79fb ldrb r3, [r7, #7] 80092a4: 4a8e ldr r2, [pc, #568] ; (80094e0 ) 80092a6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80092aa: 4a8e ldr r2, [pc, #568] ; (80094e4 ) 80092ac: 6a3b ldr r3, [r7, #32] 80092ae: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80092b2: 2303 movs r3, #3 80092b4: f7fb f9e6 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 80092b8: 79fb ldrb r3, [r7, #7] 80092ba: 4a88 ldr r2, [pc, #544] ; (80094dc ) 80092bc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80092c0: 330e adds r3, #14 80092c2: b298 uxth r0, r3 80092c4: 79fb ldrb r3, [r7, #7] 80092c6: 4a86 ldr r2, [pc, #536] ; (80094e0 ) 80092c8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80092cc: 4a85 ldr r2, [pc, #532] ; (80094e4 ) 80092ce: 69fb ldr r3, [r7, #28] 80092d0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80092d4: 2303 movs r3, #3 80092d6: f7fb f9d5 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 80092da: 79fb ldrb r3, [r7, #7] 80092dc: 4a7f ldr r2, [pc, #508] ; (80094dc ) 80092de: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80092e2: 3315 adds r3, #21 80092e4: b298 uxth r0, r3 80092e6: 79fb ldrb r3, [r7, #7] 80092e8: 4a7d ldr r2, [pc, #500] ; (80094e0 ) 80092ea: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80092ee: 4a7d ldr r2, [pc, #500] ; (80094e4 ) 80092f0: 69bb ldr r3, [r7, #24] 80092f2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80092f6: 2303 movs r3, #3 80092f8: f7fb f9c4 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE); 80092fc: 79fb ldrb r3, [r7, #7] 80092fe: 4a77 ldr r2, [pc, #476] ; (80094dc ) 8009300: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009304: 331c adds r3, #28 8009306: b298 uxth r0, r3 8009308: 79fb ldrb r3, [r7, #7] 800930a: 4a75 ldr r2, [pc, #468] ; (80094e0 ) 800930c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009310: 2303 movs r3, #3 8009312: 4a75 ldr r2, [pc, #468] ; (80094e8 ) 8009314: f7fb f9b6 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8009318: 79fb ldrb r3, [r7, #7] 800931a: 4a70 ldr r2, [pc, #448] ; (80094dc ) 800931c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009320: 3323 adds r3, #35 ; 0x23 8009322: b298 uxth r0, r3 8009324: 79fb ldrb r3, [r7, #7] 8009326: 4a6e ldr r2, [pc, #440] ; (80094e0 ) 8009328: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800932c: 4a6d ldr r2, [pc, #436] ; (80094e4 ) 800932e: 697b ldr r3, [r7, #20] 8009330: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009334: 2303 movs r3, #3 8009336: f7fb f9a5 bl 8004684 800933a: e13e b.n 80095ba if(ipt == 2) 800933c: 6b3b ldr r3, [r7, #48] ; 0x30 800933e: 2b02 cmp r3, #2 8009340: d164 bne.n 800940c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 8009342: 79fb ldrb r3, [r7, #7] 8009344: 4a65 ldr r2, [pc, #404] ; (80094dc ) 8009346: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800934a: 79fb ldrb r3, [r7, #7] 800934c: 4a64 ldr r2, [pc, #400] ; (80094e0 ) 800934e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009352: 4a64 ldr r2, [pc, #400] ; (80094e4 ) 8009354: 6a7b ldr r3, [r7, #36] ; 0x24 8009356: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800935a: 2303 movs r3, #3 800935c: f7fb f992 bl 8004684 if(blk) 8009360: 683b ldr r3, [r7, #0] 8009362: 2b00 cmp r3, #0 8009364: d010 beq.n 8009388 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009366: 79fb ldrb r3, [r7, #7] 8009368: 4a5c ldr r2, [pc, #368] ; (80094dc ) 800936a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800936e: 3307 adds r3, #7 8009370: b298 uxth r0, r3 8009372: 79fb ldrb r3, [r7, #7] 8009374: 4a5a ldr r2, [pc, #360] ; (80094e0 ) 8009376: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800937a: 4a5a ldr r2, [pc, #360] ; (80094e4 ) 800937c: 6a3b ldr r3, [r7, #32] 800937e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009382: 2303 movs r3, #3 8009384: f7fb f97e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8009388: 79fb ldrb r3, [r7, #7] 800938a: 4a54 ldr r2, [pc, #336] ; (80094dc ) 800938c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009390: 330e adds r3, #14 8009392: b298 uxth r0, r3 8009394: 79fb ldrb r3, [r7, #7] 8009396: 4a52 ldr r2, [pc, #328] ; (80094e0 ) 8009398: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800939c: 4a51 ldr r2, [pc, #324] ; (80094e4 ) 800939e: 69fb ldr r3, [r7, #28] 80093a0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80093a4: 2303 movs r3, #3 80093a6: f7fb f96d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE); 80093aa: 79fb ldrb r3, [r7, #7] 80093ac: 4a4b ldr r2, [pc, #300] ; (80094dc ) 80093ae: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80093b2: 3315 adds r3, #21 80093b4: b298 uxth r0, r3 80093b6: 79fb ldrb r3, [r7, #7] 80093b8: 4a49 ldr r2, [pc, #292] ; (80094e0 ) 80093ba: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80093be: 2303 movs r3, #3 80093c0: 4a49 ldr r2, [pc, #292] ; (80094e8 ) 80093c2: f7fb f95f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 80093c6: 79fb ldrb r3, [r7, #7] 80093c8: 4a44 ldr r2, [pc, #272] ; (80094dc ) 80093ca: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80093ce: 331c adds r3, #28 80093d0: b298 uxth r0, r3 80093d2: 79fb ldrb r3, [r7, #7] 80093d4: 4a42 ldr r2, [pc, #264] ; (80094e0 ) 80093d6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80093da: 4a42 ldr r2, [pc, #264] ; (80094e4 ) 80093dc: 69bb ldr r3, [r7, #24] 80093de: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80093e2: 2303 movs r3, #3 80093e4: f7fb f94e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 80093e8: 79fb ldrb r3, [r7, #7] 80093ea: 4a3c ldr r2, [pc, #240] ; (80094dc ) 80093ec: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80093f0: 3323 adds r3, #35 ; 0x23 80093f2: b298 uxth r0, r3 80093f4: 79fb ldrb r3, [r7, #7] 80093f6: 4a3a ldr r2, [pc, #232] ; (80094e0 ) 80093f8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80093fc: 4a39 ldr r2, [pc, #228] ; (80094e4 ) 80093fe: 697b ldr r3, [r7, #20] 8009400: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009404: 2303 movs r3, #3 8009406: f7fb f93d bl 8004684 800940a: e0d6 b.n 80095ba if(ipt == 3) 800940c: 6b3b ldr r3, [r7, #48] ; 0x30 800940e: 2b03 cmp r3, #3 8009410: d16c bne.n 80094ec BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 8009412: 79fb ldrb r3, [r7, #7] 8009414: 4a31 ldr r2, [pc, #196] ; (80094dc ) 8009416: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800941a: 79fb ldrb r3, [r7, #7] 800941c: 4a30 ldr r2, [pc, #192] ; (80094e0 ) 800941e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009422: 4a30 ldr r2, [pc, #192] ; (80094e4 ) 8009424: 6a7b ldr r3, [r7, #36] ; 0x24 8009426: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800942a: 2303 movs r3, #3 800942c: f7fb f92a bl 8004684 if(blk) 8009430: 683b ldr r3, [r7, #0] 8009432: 2b00 cmp r3, #0 8009434: d010 beq.n 8009458 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009436: 79fb ldrb r3, [r7, #7] 8009438: 4a28 ldr r2, [pc, #160] ; (80094dc ) 800943a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800943e: 3307 adds r3, #7 8009440: b298 uxth r0, r3 8009442: 79fb ldrb r3, [r7, #7] 8009444: 4a26 ldr r2, [pc, #152] ; (80094e0 ) 8009446: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800944a: 4a26 ldr r2, [pc, #152] ; (80094e4 ) 800944c: 6a3b ldr r3, [r7, #32] 800944e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009452: 2303 movs r3, #3 8009454: f7fb f916 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE); 8009458: 79fb ldrb r3, [r7, #7] 800945a: 4a20 ldr r2, [pc, #128] ; (80094dc ) 800945c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009460: 330e adds r3, #14 8009462: b298 uxth r0, r3 8009464: 79fb ldrb r3, [r7, #7] 8009466: 4a1e ldr r2, [pc, #120] ; (80094e0 ) 8009468: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800946c: 2303 movs r3, #3 800946e: 4a1e ldr r2, [pc, #120] ; (80094e8 ) 8009470: f7fb f908 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8009474: 79fb ldrb r3, [r7, #7] 8009476: 4a19 ldr r2, [pc, #100] ; (80094dc ) 8009478: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800947c: 3315 adds r3, #21 800947e: b298 uxth r0, r3 8009480: 79fb ldrb r3, [r7, #7] 8009482: 4a17 ldr r2, [pc, #92] ; (80094e0 ) 8009484: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009488: 4a16 ldr r2, [pc, #88] ; (80094e4 ) 800948a: 69fb ldr r3, [r7, #28] 800948c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009490: 2303 movs r3, #3 8009492: f7fb f8f7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8009496: 79fb ldrb r3, [r7, #7] 8009498: 4a10 ldr r2, [pc, #64] ; (80094dc ) 800949a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800949e: 331c adds r3, #28 80094a0: b298 uxth r0, r3 80094a2: 79fb ldrb r3, [r7, #7] 80094a4: 4a0e ldr r2, [pc, #56] ; (80094e0 ) 80094a6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80094aa: 4a0e ldr r2, [pc, #56] ; (80094e4 ) 80094ac: 69bb ldr r3, [r7, #24] 80094ae: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80094b2: 2303 movs r3, #3 80094b4: f7fb f8e6 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 80094b8: 79fb ldrb r3, [r7, #7] 80094ba: 4a08 ldr r2, [pc, #32] ; (80094dc ) 80094bc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80094c0: 3323 adds r3, #35 ; 0x23 80094c2: b298 uxth r0, r3 80094c4: 79fb ldrb r3, [r7, #7] 80094c6: 4a06 ldr r2, [pc, #24] ; (80094e0 ) 80094c8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80094cc: 4a05 ldr r2, [pc, #20] ; (80094e4 ) 80094ce: 697b ldr r3, [r7, #20] 80094d0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80094d4: 2303 movs r3, #3 80094d6: f7fb f8d5 bl 8004684 80094da: e06e b.n 80095ba 80094dc: 08015564 .word 0x08015564 80094e0: 0801556c .word 0x0801556c 80094e4: 200201ec .word 0x200201ec 80094e8: 08012cb8 .word 0x08012cb8 if(ipt == 4) 80094ec: 6b3b ldr r3, [r7, #48] ; 0x30 80094ee: 2b04 cmp r3, #4 80094f0: d163 bne.n 80095ba BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 80094f2: 79fb ldrb r3, [r7, #7] 80094f4: 4a82 ldr r2, [pc, #520] ; (8009700 ) 80094f6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80094fa: 79fb ldrb r3, [r7, #7] 80094fc: 4a81 ldr r2, [pc, #516] ; (8009704 ) 80094fe: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009502: 4a81 ldr r2, [pc, #516] ; (8009708 ) 8009504: 6a7b ldr r3, [r7, #36] ; 0x24 8009506: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800950a: 2303 movs r3, #3 800950c: f7fb f8ba bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE); 8009510: 79fb ldrb r3, [r7, #7] 8009512: 4a7b ldr r2, [pc, #492] ; (8009700 ) 8009514: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009518: 3307 adds r3, #7 800951a: b298 uxth r0, r3 800951c: 79fb ldrb r3, [r7, #7] 800951e: 4a79 ldr r2, [pc, #484] ; (8009704 ) 8009520: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009524: 2303 movs r3, #3 8009526: 4a79 ldr r2, [pc, #484] ; (800970c ) 8009528: f7fb f8ac bl 8004684 if(blk) 800952c: 683b ldr r3, [r7, #0] 800952e: 2b00 cmp r3, #0 8009530: d010 beq.n 8009554 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009532: 79fb ldrb r3, [r7, #7] 8009534: 4a72 ldr r2, [pc, #456] ; (8009700 ) 8009536: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800953a: 330e adds r3, #14 800953c: b298 uxth r0, r3 800953e: 79fb ldrb r3, [r7, #7] 8009540: 4a70 ldr r2, [pc, #448] ; (8009704 ) 8009542: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009546: 4a70 ldr r2, [pc, #448] ; (8009708 ) 8009548: 6a3b ldr r3, [r7, #32] 800954a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800954e: 2303 movs r3, #3 8009550: f7fb f898 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8009554: 79fb ldrb r3, [r7, #7] 8009556: 4a6a ldr r2, [pc, #424] ; (8009700 ) 8009558: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800955c: 3315 adds r3, #21 800955e: b298 uxth r0, r3 8009560: 79fb ldrb r3, [r7, #7] 8009562: 4a68 ldr r2, [pc, #416] ; (8009704 ) 8009564: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009568: 4a67 ldr r2, [pc, #412] ; (8009708 ) 800956a: 69fb ldr r3, [r7, #28] 800956c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009570: 2303 movs r3, #3 8009572: f7fb f887 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8009576: 79fb ldrb r3, [r7, #7] 8009578: 4a61 ldr r2, [pc, #388] ; (8009700 ) 800957a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800957e: 331c adds r3, #28 8009580: b298 uxth r0, r3 8009582: 79fb ldrb r3, [r7, #7] 8009584: 4a5f ldr r2, [pc, #380] ; (8009704 ) 8009586: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800958a: 4a5f ldr r2, [pc, #380] ; (8009708 ) 800958c: 69bb ldr r3, [r7, #24] 800958e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009592: 2303 movs r3, #3 8009594: f7fb f876 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8009598: 79fb ldrb r3, [r7, #7] 800959a: 4a59 ldr r2, [pc, #356] ; (8009700 ) 800959c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80095a0: 3323 adds r3, #35 ; 0x23 80095a2: b298 uxth r0, r3 80095a4: 79fb ldrb r3, [r7, #7] 80095a6: 4a57 ldr r2, [pc, #348] ; (8009704 ) 80095a8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80095ac: 4a56 ldr r2, [pc, #344] ; (8009708 ) 80095ae: 697b ldr r3, [r7, #20] 80095b0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80095b4: 2303 movs r3, #3 80095b6: f7fb f865 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 80095ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80095be: 4854 ldr r0, [pc, #336] ; (8009710 ) 80095c0: f7fa ff9a bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 80095c4: 79fb ldrb r3, [r7, #7] 80095c6: 4a53 ldr r2, [pc, #332] ; (8009714 ) 80095c8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80095cc: 79fb ldrb r3, [r7, #7] 80095ce: 4a52 ldr r2, [pc, #328] ; (8009718 ) 80095d0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80095d4: 4b51 ldr r3, [pc, #324] ; (800971c ) 80095d6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80095da: b29b uxth r3, r3 80095dc: 461d mov r5, r3 80095de: 79fb ldrb r3, [r7, #7] 80095e0: 4a4e ldr r2, [pc, #312] ; (800971c ) 80095e2: 015b lsls r3, r3, #5 80095e4: 4413 add r3, r2 80095e6: 881b ldrh r3, [r3, #0] 80095e8: b29b uxth r3, r3 80095ea: 461c mov r4, r3 80095ec: 4a4c ldr r2, [pc, #304] ; (8009720 ) 80095ee: 006b lsls r3, r5, #1 80095f0: 4423 add r3, r4 80095f2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80095f6: 2303 movs r3, #3 80095f8: f7fb f844 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 80095fc: 79fb ldrb r3, [r7, #7] 80095fe: 4a49 ldr r2, [pc, #292] ; (8009724 ) 8009600: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009604: 79fb ldrb r3, [r7, #7] 8009606: 4a48 ldr r2, [pc, #288] ; (8009728 ) 8009608: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800960c: 4b43 ldr r3, [pc, #268] ; (800971c ) 800960e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009612: b29b uxth r3, r3 8009614: 4619 mov r1, r3 8009616: 79fb ldrb r3, [r7, #7] 8009618: 4a40 ldr r2, [pc, #256] ; (800971c ) 800961a: 015b lsls r3, r3, #5 800961c: 4413 add r3, r2 800961e: 3302 adds r3, #2 8009620: 881b ldrh r3, [r3, #0] 8009622: b29b uxth r3, r3 8009624: 461d mov r5, r3 8009626: 4a41 ldr r2, [pc, #260] ; (800972c ) 8009628: 460b mov r3, r1 800962a: 009b lsls r3, r3, #2 800962c: 440b add r3, r1 800962e: 442b add r3, r5 8009630: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009634: 2303 movs r3, #3 8009636: 4621 mov r1, r4 8009638: f7fb f824 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800963c: 79fb ldrb r3, [r7, #7] 800963e: 4a3c ldr r2, [pc, #240] ; (8009730 ) 8009640: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009644: 79fb ldrb r3, [r7, #7] 8009646: 4a3b ldr r2, [pc, #236] ; (8009734 ) 8009648: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800964c: 4b33 ldr r3, [pc, #204] ; (800971c ) 800964e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009652: b29b uxth r3, r3 8009654: 461d mov r5, r3 8009656: 79fb ldrb r3, [r7, #7] 8009658: 4a30 ldr r2, [pc, #192] ; (800971c ) 800965a: 015b lsls r3, r3, #5 800965c: 4413 add r3, r2 800965e: 3304 adds r3, #4 8009660: 881b ldrh r3, [r3, #0] 8009662: b29b uxth r3, r3 8009664: 461c mov r4, r3 8009666: 4a34 ldr r2, [pc, #208] ; (8009738 ) 8009668: 00eb lsls r3, r5, #3 800966a: 4423 add r3, r4 800966c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009670: 2303 movs r3, #3 8009672: f7fb f807 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8009676: 79fb ldrb r3, [r7, #7] 8009678: 4a21 ldr r2, [pc, #132] ; (8009700 ) 800967a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800967e: 332d adds r3, #45 ; 0x2d 8009680: b298 uxth r0, r3 8009682: 79fb ldrb r3, [r7, #7] 8009684: 4a1f ldr r2, [pc, #124] ; (8009704 ) 8009686: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800968a: 79fb ldrb r3, [r7, #7] 800968c: 4a23 ldr r2, [pc, #140] ; (800971c ) 800968e: 015b lsls r3, r3, #5 8009690: 4413 add r3, r2 8009692: 881b ldrh r3, [r3, #0] 8009694: b29b uxth r3, r3 8009696: 4619 mov r1, r3 8009698: 79fb ldrb r3, [r7, #7] 800969a: 4a20 ldr r2, [pc, #128] ; (800971c ) 800969c: 015b lsls r3, r3, #5 800969e: 4413 add r3, r2 80096a0: 3312 adds r3, #18 80096a2: 881b ldrh r3, [r3, #0] 80096a4: b29b uxth r3, r3 80096a6: 461d mov r5, r3 80096a8: 4a24 ldr r2, [pc, #144] ; (800973c ) 80096aa: 460b mov r3, r1 80096ac: 005b lsls r3, r3, #1 80096ae: 440b add r3, r1 80096b0: 442b add r3, r5 80096b2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80096b6: 2303 movs r3, #3 80096b8: 4621 mov r1, r4 80096ba: f7fa ffe3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 80096be: 79fb ldrb r3, [r7, #7] 80096c0: 4a1f ldr r2, [pc, #124] ; (8009740 ) 80096c2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80096c6: 79fb ldrb r3, [r7, #7] 80096c8: 4a1e ldr r2, [pc, #120] ; (8009744 ) 80096ca: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 80096ce: 79fb ldrb r3, [r7, #7] 80096d0: 4a12 ldr r2, [pc, #72] ; (800971c ) 80096d2: 015b lsls r3, r3, #5 80096d4: 4413 add r3, r2 80096d6: 3312 adds r3, #18 80096d8: 881b ldrh r3, [r3, #0] 80096da: b29b uxth r3, r3 80096dc: 461a mov r2, r3 80096de: 491a ldr r1, [pc, #104] ; (8009748 ) 80096e0: 4613 mov r3, r2 80096e2: 009b lsls r3, r3, #2 80096e4: 4413 add r3, r2 80096e6: 009a lsls r2, r3, #2 80096e8: 4413 add r3, r2 80096ea: 6afa ldr r2, [r7, #44] ; 0x2c 80096ec: 4413 add r3, r2 80096ee: f851 2023 ldr.w r2, [r1, r3, lsl #2] 80096f2: 2303 movs r3, #3 80096f4: 4621 mov r1, r4 80096f6: f7fa ffc5 bl 8004684 } 80096fa: f001 bfb6 b.w 800b66a 80096fe: bf00 nop 8009700: 08015564 .word 0x08015564 8009704: 0801556c .word 0x0801556c 8009708: 200201ec .word 0x200201ec 800970c: 08012cb8 .word 0x08012cb8 8009710: ffd8aa57 .word 0xffd8aa57 8009714: 08015534 .word 0x08015534 8009718: 0801553c .word 0x0801553c 800971c: 2006b510 .word 0x2006b510 8009720: 20020030 .word 0x20020030 8009724: 08015544 .word 0x08015544 8009728: 0801554c .word 0x0801554c 800972c: 20020040 .word 0x20020040 8009730: 08015554 .word 0x08015554 8009734: 0801555c .word 0x0801555c 8009738: 20020068 .word 0x20020068 800973c: 200200a8 .word 0x200200a8 8009740: 08015574 .word 0x08015574 8009744: 0801557c .word 0x0801557c 8009748: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800974c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009750: 488c ldr r0, [pc, #560] ; (8009984 ) 8009752: f7fa fed1 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8009756: 79fb ldrb r3, [r7, #7] 8009758: 4a8b ldr r2, [pc, #556] ; (8009988 ) 800975a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800975e: 79fb ldrb r3, [r7, #7] 8009760: 4a8a ldr r2, [pc, #552] ; (800998c ) 8009762: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009766: 4b8a ldr r3, [pc, #552] ; (8009990 ) 8009768: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800976c: b29b uxth r3, r3 800976e: 461d mov r5, r3 8009770: 79fb ldrb r3, [r7, #7] 8009772: 4a87 ldr r2, [pc, #540] ; (8009990 ) 8009774: 015b lsls r3, r3, #5 8009776: 4413 add r3, r2 8009778: 881b ldrh r3, [r3, #0] 800977a: b29b uxth r3, r3 800977c: 461c mov r4, r3 800977e: 4a85 ldr r2, [pc, #532] ; (8009994 ) 8009780: 006b lsls r3, r5, #1 8009782: 4423 add r3, r4 8009784: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009788: 2303 movs r3, #3 800978a: f7fa ff7b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800978e: 79fb ldrb r3, [r7, #7] 8009790: 4a81 ldr r2, [pc, #516] ; (8009998 ) 8009792: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009796: 79fb ldrb r3, [r7, #7] 8009798: 4a80 ldr r2, [pc, #512] ; (800999c ) 800979a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800979e: 4b7c ldr r3, [pc, #496] ; (8009990 ) 80097a0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80097a4: b29b uxth r3, r3 80097a6: 4619 mov r1, r3 80097a8: 79fb ldrb r3, [r7, #7] 80097aa: 4a79 ldr r2, [pc, #484] ; (8009990 ) 80097ac: 015b lsls r3, r3, #5 80097ae: 4413 add r3, r2 80097b0: 3302 adds r3, #2 80097b2: 881b ldrh r3, [r3, #0] 80097b4: b29b uxth r3, r3 80097b6: 461d mov r5, r3 80097b8: 4a79 ldr r2, [pc, #484] ; (80099a0 ) 80097ba: 460b mov r3, r1 80097bc: 009b lsls r3, r3, #2 80097be: 440b add r3, r1 80097c0: 442b add r3, r5 80097c2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80097c6: 2303 movs r3, #3 80097c8: 4621 mov r1, r4 80097ca: f7fa ff5b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 80097ce: 79fb ldrb r3, [r7, #7] 80097d0: 4a74 ldr r2, [pc, #464] ; (80099a4 ) 80097d2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80097d6: 79fb ldrb r3, [r7, #7] 80097d8: 4a73 ldr r2, [pc, #460] ; (80099a8 ) 80097da: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80097de: 4b6c ldr r3, [pc, #432] ; (8009990 ) 80097e0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 80097e4: b29b uxth r3, r3 80097e6: 461d mov r5, r3 80097e8: 79fb ldrb r3, [r7, #7] 80097ea: 4a69 ldr r2, [pc, #420] ; (8009990 ) 80097ec: 015b lsls r3, r3, #5 80097ee: 4413 add r3, r2 80097f0: 3304 adds r3, #4 80097f2: 881b ldrh r3, [r3, #0] 80097f4: b29b uxth r3, r3 80097f6: 461c mov r4, r3 80097f8: 4a6c ldr r2, [pc, #432] ; (80099ac ) 80097fa: 00eb lsls r3, r5, #3 80097fc: 4423 add r3, r4 80097fe: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009802: 2303 movs r3, #3 8009804: f7fa ff3e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 8009808: 79fb ldrb r3, [r7, #7] 800980a: 4a69 ldr r2, [pc, #420] ; (80099b0 ) 800980c: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009810: 79fb ldrb r3, [r7, #7] 8009812: 4a68 ldr r2, [pc, #416] ; (80099b4 ) 8009814: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009818: f107 0208 add.w r2, r7, #8 800981c: 2303 movs r3, #3 800981e: f7fa ff31 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8009822: 79fb ldrb r3, [r7, #7] 8009824: 4a62 ldr r2, [pc, #392] ; (80099b0 ) 8009826: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800982a: 332d adds r3, #45 ; 0x2d 800982c: b298 uxth r0, r3 800982e: 79fb ldrb r3, [r7, #7] 8009830: 4a60 ldr r2, [pc, #384] ; (80099b4 ) 8009832: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009836: 79fb ldrb r3, [r7, #7] 8009838: 4a55 ldr r2, [pc, #340] ; (8009990 ) 800983a: 015b lsls r3, r3, #5 800983c: 4413 add r3, r2 800983e: 881b ldrh r3, [r3, #0] 8009840: b29b uxth r3, r3 8009842: 4619 mov r1, r3 8009844: 79fb ldrb r3, [r7, #7] 8009846: 4a52 ldr r2, [pc, #328] ; (8009990 ) 8009848: 015b lsls r3, r3, #5 800984a: 4413 add r3, r2 800984c: 3312 adds r3, #18 800984e: 881b ldrh r3, [r3, #0] 8009850: b29b uxth r3, r3 8009852: 461d mov r5, r3 8009854: 4a58 ldr r2, [pc, #352] ; (80099b8 ) 8009856: 460b mov r3, r1 8009858: 005b lsls r3, r3, #1 800985a: 440b add r3, r1 800985c: 442b add r3, r5 800985e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009862: 2303 movs r3, #3 8009864: 4621 mov r1, r4 8009866: f7fa ff0d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800986a: 79fb ldrb r3, [r7, #7] 800986c: 4a53 ldr r2, [pc, #332] ; (80099bc ) 800986e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009872: 79fb ldrb r3, [r7, #7] 8009874: 4a52 ldr r2, [pc, #328] ; (80099c0 ) 8009876: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800987a: 79fb ldrb r3, [r7, #7] 800987c: 4a44 ldr r2, [pc, #272] ; (8009990 ) 800987e: 015b lsls r3, r3, #5 8009880: 4413 add r3, r2 8009882: 3312 adds r3, #18 8009884: 881b ldrh r3, [r3, #0] 8009886: b29b uxth r3, r3 8009888: 461a mov r2, r3 800988a: 494e ldr r1, [pc, #312] ; (80099c4 ) 800988c: 4613 mov r3, r2 800988e: 009b lsls r3, r3, #2 8009890: 4413 add r3, r2 8009892: 009a lsls r2, r3, #2 8009894: 4413 add r3, r2 8009896: 6afa ldr r2, [r7, #44] ; 0x2c 8009898: 4413 add r3, r2 800989a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800989e: 2303 movs r3, #3 80098a0: 4621 mov r1, r4 80098a2: f7fa feef bl 8004684 } 80098a6: f001 bee0 b.w 800b66a if(menupos == Kiks) 80098aa: 4b47 ldr r3, [pc, #284] ; (80099c8 ) 80098ac: 781b ldrb r3, [r3, #0] 80098ae: b2db uxtb r3, r3 80098b0: 2b08 cmp r3, #8 80098b2: f040 83ae bne.w 800a012 if(ACTIVE_CHANNEL == ch) 80098b6: 79fa ldrb r2, [r7, #7] 80098b8: 4b44 ldr r3, [pc, #272] ; (80099cc ) 80098ba: 681b ldr r3, [r3, #0] 80098bc: 429a cmp r2, r3 80098be: f040 82f9 bne.w 8009eb4 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 80098c2: f04f 417f mov.w r1, #4278190080 ; 0xff000000 80098c6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 80098ca: f7fa fe15 bl 80044f8 if(!ipt) 80098ce: 6b3b ldr r3, [r7, #48] ; 0x30 80098d0: 2b00 cmp r3, #0 80098d2: d17f bne.n 80099d4 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 80098d4: 79fb ldrb r3, [r7, #7] 80098d6: 4a36 ldr r2, [pc, #216] ; (80099b0 ) 80098d8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80098dc: 79fb ldrb r3, [r7, #7] 80098de: 4a35 ldr r2, [pc, #212] ; (80099b4 ) 80098e0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80098e4: 4a3a ldr r2, [pc, #232] ; (80099d0 ) 80098e6: 6a7b ldr r3, [r7, #36] ; 0x24 80098e8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80098ec: 2303 movs r3, #3 80098ee: f7fa fec9 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 80098f2: 79fb ldrb r3, [r7, #7] 80098f4: 4a2e ldr r2, [pc, #184] ; (80099b0 ) 80098f6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 80098fa: 3307 adds r3, #7 80098fc: b298 uxth r0, r3 80098fe: 79fb ldrb r3, [r7, #7] 8009900: 4a2c ldr r2, [pc, #176] ; (80099b4 ) 8009902: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009906: 4a32 ldr r2, [pc, #200] ; (80099d0 ) 8009908: 6a3b ldr r3, [r7, #32] 800990a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800990e: 2303 movs r3, #3 8009910: f7fa feb8 bl 8004684 if(blk) 8009914: 683b ldr r3, [r7, #0] 8009916: 2b00 cmp r3, #0 8009918: d010 beq.n 800993c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800991a: 79fb ldrb r3, [r7, #7] 800991c: 4a24 ldr r2, [pc, #144] ; (80099b0 ) 800991e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009922: 330e adds r3, #14 8009924: b298 uxth r0, r3 8009926: 79fb ldrb r3, [r7, #7] 8009928: 4a22 ldr r2, [pc, #136] ; (80099b4 ) 800992a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800992e: 4a28 ldr r2, [pc, #160] ; (80099d0 ) 8009930: 69fb ldr r3, [r7, #28] 8009932: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009936: 2303 movs r3, #3 8009938: f7fa fea4 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800993c: 79fb ldrb r3, [r7, #7] 800993e: 4a1c ldr r2, [pc, #112] ; (80099b0 ) 8009940: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009944: 3315 adds r3, #21 8009946: b298 uxth r0, r3 8009948: 79fb ldrb r3, [r7, #7] 800994a: 4a1a ldr r2, [pc, #104] ; (80099b4 ) 800994c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009950: 4a1f ldr r2, [pc, #124] ; (80099d0 ) 8009952: 69bb ldr r3, [r7, #24] 8009954: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009958: 2303 movs r3, #3 800995a: f7fa fe93 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800995e: 79fb ldrb r3, [r7, #7] 8009960: 4a13 ldr r2, [pc, #76] ; (80099b0 ) 8009962: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009966: 331c adds r3, #28 8009968: b298 uxth r0, r3 800996a: 79fb ldrb r3, [r7, #7] 800996c: 4a11 ldr r2, [pc, #68] ; (80099b4 ) 800996e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009972: 4a17 ldr r2, [pc, #92] ; (80099d0 ) 8009974: 697b ldr r3, [r7, #20] 8009976: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800997a: 2303 movs r3, #3 800997c: f7fa fe82 bl 8004684 8009980: e1cf b.n 8009d22 8009982: bf00 nop 8009984: ffd8aa57 .word 0xffd8aa57 8009988: 08015534 .word 0x08015534 800998c: 0801553c .word 0x0801553c 8009990: 2006b510 .word 0x2006b510 8009994: 20020030 .word 0x20020030 8009998: 08015544 .word 0x08015544 800999c: 0801554c .word 0x0801554c 80099a0: 20020040 .word 0x20020040 80099a4: 08015554 .word 0x08015554 80099a8: 0801555c .word 0x0801555c 80099ac: 20020068 .word 0x20020068 80099b0: 08015564 .word 0x08015564 80099b4: 0801556c .word 0x0801556c 80099b8: 200200a8 .word 0x200200a8 80099bc: 08015574 .word 0x08015574 80099c0: 0801557c .word 0x0801557c 80099c4: 200200c0 .word 0x200200c0 80099c8: 20020010 .word 0x20020010 80099cc: 2006b2d0 .word 0x2006b2d0 80099d0: 200201ec .word 0x200201ec if(ipt == 1) 80099d4: 6b3b ldr r3, [r7, #48] ; 0x30 80099d6: 2b01 cmp r3, #1 80099d8: d164 bne.n 8009aa4 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 80099da: 79fb ldrb r3, [r7, #7] 80099dc: 4a99 ldr r2, [pc, #612] ; (8009c44 ) 80099de: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 80099e2: 79fb ldrb r3, [r7, #7] 80099e4: 4a98 ldr r2, [pc, #608] ; (8009c48 ) 80099e6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 80099ea: 4a98 ldr r2, [pc, #608] ; (8009c4c ) 80099ec: 6a7b ldr r3, [r7, #36] ; 0x24 80099ee: f852 2023 ldr.w r2, [r2, r3, lsl #2] 80099f2: 2303 movs r3, #3 80099f4: f7fa fe46 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 80099f8: 79fb ldrb r3, [r7, #7] 80099fa: 4a92 ldr r2, [pc, #584] ; (8009c44 ) 80099fc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009a00: 3307 adds r3, #7 8009a02: b298 uxth r0, r3 8009a04: 79fb ldrb r3, [r7, #7] 8009a06: 4a90 ldr r2, [pc, #576] ; (8009c48 ) 8009a08: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009a0c: 4a8f ldr r2, [pc, #572] ; (8009c4c ) 8009a0e: 6a3b ldr r3, [r7, #32] 8009a10: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009a14: 2303 movs r3, #3 8009a16: f7fa fe35 bl 8004684 if(blk) 8009a1a: 683b ldr r3, [r7, #0] 8009a1c: 2b00 cmp r3, #0 8009a1e: d010 beq.n 8009a42 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8009a20: 79fb ldrb r3, [r7, #7] 8009a22: 4a88 ldr r2, [pc, #544] ; (8009c44 ) 8009a24: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009a28: 330e adds r3, #14 8009a2a: b298 uxth r0, r3 8009a2c: 79fb ldrb r3, [r7, #7] 8009a2e: 4a86 ldr r2, [pc, #536] ; (8009c48 ) 8009a30: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009a34: 4a85 ldr r2, [pc, #532] ; (8009c4c ) 8009a36: 69fb ldr r3, [r7, #28] 8009a38: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009a3c: 2303 movs r3, #3 8009a3e: f7fa fe21 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8009a42: 79fb ldrb r3, [r7, #7] 8009a44: 4a7f ldr r2, [pc, #508] ; (8009c44 ) 8009a46: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009a4a: 3315 adds r3, #21 8009a4c: b298 uxth r0, r3 8009a4e: 79fb ldrb r3, [r7, #7] 8009a50: 4a7d ldr r2, [pc, #500] ; (8009c48 ) 8009a52: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009a56: 4a7d ldr r2, [pc, #500] ; (8009c4c ) 8009a58: 69bb ldr r3, [r7, #24] 8009a5a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009a5e: 2303 movs r3, #3 8009a60: f7fa fe10 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE); 8009a64: 79fb ldrb r3, [r7, #7] 8009a66: 4a77 ldr r2, [pc, #476] ; (8009c44 ) 8009a68: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009a6c: 331c adds r3, #28 8009a6e: b298 uxth r0, r3 8009a70: 79fb ldrb r3, [r7, #7] 8009a72: 4a75 ldr r2, [pc, #468] ; (8009c48 ) 8009a74: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009a78: 2303 movs r3, #3 8009a7a: 4a75 ldr r2, [pc, #468] ; (8009c50 ) 8009a7c: f7fa fe02 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8009a80: 79fb ldrb r3, [r7, #7] 8009a82: 4a70 ldr r2, [pc, #448] ; (8009c44 ) 8009a84: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009a88: 3323 adds r3, #35 ; 0x23 8009a8a: b298 uxth r0, r3 8009a8c: 79fb ldrb r3, [r7, #7] 8009a8e: 4a6e ldr r2, [pc, #440] ; (8009c48 ) 8009a90: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009a94: 4a6d ldr r2, [pc, #436] ; (8009c4c ) 8009a96: 697b ldr r3, [r7, #20] 8009a98: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009a9c: 2303 movs r3, #3 8009a9e: f7fa fdf1 bl 8004684 8009aa2: e13e b.n 8009d22 if(ipt == 2) 8009aa4: 6b3b ldr r3, [r7, #48] ; 0x30 8009aa6: 2b02 cmp r3, #2 8009aa8: d164 bne.n 8009b74 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 8009aaa: 79fb ldrb r3, [r7, #7] 8009aac: 4a65 ldr r2, [pc, #404] ; (8009c44 ) 8009aae: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009ab2: 79fb ldrb r3, [r7, #7] 8009ab4: 4a64 ldr r2, [pc, #400] ; (8009c48 ) 8009ab6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009aba: 4a64 ldr r2, [pc, #400] ; (8009c4c ) 8009abc: 6a7b ldr r3, [r7, #36] ; 0x24 8009abe: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009ac2: 2303 movs r3, #3 8009ac4: f7fa fdde bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009ac8: 79fb ldrb r3, [r7, #7] 8009aca: 4a5e ldr r2, [pc, #376] ; (8009c44 ) 8009acc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009ad0: 3307 adds r3, #7 8009ad2: b298 uxth r0, r3 8009ad4: 79fb ldrb r3, [r7, #7] 8009ad6: 4a5c ldr r2, [pc, #368] ; (8009c48 ) 8009ad8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009adc: 4a5b ldr r2, [pc, #364] ; (8009c4c ) 8009ade: 6a3b ldr r3, [r7, #32] 8009ae0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009ae4: 2303 movs r3, #3 8009ae6: f7fa fdcd bl 8004684 if(blk) 8009aea: 683b ldr r3, [r7, #0] 8009aec: 2b00 cmp r3, #0 8009aee: d010 beq.n 8009b12 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8009af0: 79fb ldrb r3, [r7, #7] 8009af2: 4a54 ldr r2, [pc, #336] ; (8009c44 ) 8009af4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009af8: 330e adds r3, #14 8009afa: b298 uxth r0, r3 8009afc: 79fb ldrb r3, [r7, #7] 8009afe: 4a52 ldr r2, [pc, #328] ; (8009c48 ) 8009b00: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009b04: 4a51 ldr r2, [pc, #324] ; (8009c4c ) 8009b06: 69fb ldr r3, [r7, #28] 8009b08: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009b0c: 2303 movs r3, #3 8009b0e: f7fa fdb9 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE); 8009b12: 79fb ldrb r3, [r7, #7] 8009b14: 4a4b ldr r2, [pc, #300] ; (8009c44 ) 8009b16: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009b1a: 3315 adds r3, #21 8009b1c: b298 uxth r0, r3 8009b1e: 79fb ldrb r3, [r7, #7] 8009b20: 4a49 ldr r2, [pc, #292] ; (8009c48 ) 8009b22: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009b26: 2303 movs r3, #3 8009b28: 4a49 ldr r2, [pc, #292] ; (8009c50 ) 8009b2a: f7fa fdab bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8009b2e: 79fb ldrb r3, [r7, #7] 8009b30: 4a44 ldr r2, [pc, #272] ; (8009c44 ) 8009b32: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009b36: 331c adds r3, #28 8009b38: b298 uxth r0, r3 8009b3a: 79fb ldrb r3, [r7, #7] 8009b3c: 4a42 ldr r2, [pc, #264] ; (8009c48 ) 8009b3e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009b42: 4a42 ldr r2, [pc, #264] ; (8009c4c ) 8009b44: 69bb ldr r3, [r7, #24] 8009b46: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009b4a: 2303 movs r3, #3 8009b4c: f7fa fd9a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8009b50: 79fb ldrb r3, [r7, #7] 8009b52: 4a3c ldr r2, [pc, #240] ; (8009c44 ) 8009b54: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009b58: 3323 adds r3, #35 ; 0x23 8009b5a: b298 uxth r0, r3 8009b5c: 79fb ldrb r3, [r7, #7] 8009b5e: 4a3a ldr r2, [pc, #232] ; (8009c48 ) 8009b60: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009b64: 4a39 ldr r2, [pc, #228] ; (8009c4c ) 8009b66: 697b ldr r3, [r7, #20] 8009b68: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009b6c: 2303 movs r3, #3 8009b6e: f7fa fd89 bl 8004684 8009b72: e0d6 b.n 8009d22 if(ipt == 3) 8009b74: 6b3b ldr r3, [r7, #48] ; 0x30 8009b76: 2b03 cmp r3, #3 8009b78: d16c bne.n 8009c54 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 8009b7a: 79fb ldrb r3, [r7, #7] 8009b7c: 4a31 ldr r2, [pc, #196] ; (8009c44 ) 8009b7e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009b82: 79fb ldrb r3, [r7, #7] 8009b84: 4a30 ldr r2, [pc, #192] ; (8009c48 ) 8009b86: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009b8a: 4a30 ldr r2, [pc, #192] ; (8009c4c ) 8009b8c: 6a7b ldr r3, [r7, #36] ; 0x24 8009b8e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009b92: 2303 movs r3, #3 8009b94: f7fa fd76 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009b98: 79fb ldrb r3, [r7, #7] 8009b9a: 4a2a ldr r2, [pc, #168] ; (8009c44 ) 8009b9c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009ba0: 3307 adds r3, #7 8009ba2: b298 uxth r0, r3 8009ba4: 79fb ldrb r3, [r7, #7] 8009ba6: 4a28 ldr r2, [pc, #160] ; (8009c48 ) 8009ba8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009bac: 4a27 ldr r2, [pc, #156] ; (8009c4c ) 8009bae: 6a3b ldr r3, [r7, #32] 8009bb0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009bb4: 2303 movs r3, #3 8009bb6: f7fa fd65 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE); 8009bba: 79fb ldrb r3, [r7, #7] 8009bbc: 4a21 ldr r2, [pc, #132] ; (8009c44 ) 8009bbe: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009bc2: 330e adds r3, #14 8009bc4: b298 uxth r0, r3 8009bc6: 79fb ldrb r3, [r7, #7] 8009bc8: 4a1f ldr r2, [pc, #124] ; (8009c48 ) 8009bca: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009bce: 2303 movs r3, #3 8009bd0: 4a1f ldr r2, [pc, #124] ; (8009c50 ) 8009bd2: f7fa fd57 bl 8004684 if(blk) 8009bd6: 683b ldr r3, [r7, #0] 8009bd8: 2b00 cmp r3, #0 8009bda: d010 beq.n 8009bfe BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8009bdc: 79fb ldrb r3, [r7, #7] 8009bde: 4a19 ldr r2, [pc, #100] ; (8009c44 ) 8009be0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009be4: 3315 adds r3, #21 8009be6: b298 uxth r0, r3 8009be8: 79fb ldrb r3, [r7, #7] 8009bea: 4a17 ldr r2, [pc, #92] ; (8009c48 ) 8009bec: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009bf0: 4a16 ldr r2, [pc, #88] ; (8009c4c ) 8009bf2: 69fb ldr r3, [r7, #28] 8009bf4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009bf8: 2303 movs r3, #3 8009bfa: f7fa fd43 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8009bfe: 79fb ldrb r3, [r7, #7] 8009c00: 4a10 ldr r2, [pc, #64] ; (8009c44 ) 8009c02: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009c06: 331c adds r3, #28 8009c08: b298 uxth r0, r3 8009c0a: 79fb ldrb r3, [r7, #7] 8009c0c: 4a0e ldr r2, [pc, #56] ; (8009c48 ) 8009c0e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009c12: 4a0e ldr r2, [pc, #56] ; (8009c4c ) 8009c14: 69bb ldr r3, [r7, #24] 8009c16: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009c1a: 2303 movs r3, #3 8009c1c: f7fa fd32 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8009c20: 79fb ldrb r3, [r7, #7] 8009c22: 4a08 ldr r2, [pc, #32] ; (8009c44 ) 8009c24: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009c28: 3323 adds r3, #35 ; 0x23 8009c2a: b298 uxth r0, r3 8009c2c: 79fb ldrb r3, [r7, #7] 8009c2e: 4a06 ldr r2, [pc, #24] ; (8009c48 ) 8009c30: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009c34: 4a05 ldr r2, [pc, #20] ; (8009c4c ) 8009c36: 697b ldr r3, [r7, #20] 8009c38: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009c3c: 2303 movs r3, #3 8009c3e: f7fa fd21 bl 8004684 8009c42: e06e b.n 8009d22 8009c44: 08015564 .word 0x08015564 8009c48: 0801556c .word 0x0801556c 8009c4c: 200201ec .word 0x200201ec 8009c50: 08012cb8 .word 0x08012cb8 if(ipt == 4) 8009c54: 6b3b ldr r3, [r7, #48] ; 0x30 8009c56: 2b04 cmp r3, #4 8009c58: d163 bne.n 8009d22 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 8009c5a: 79fb ldrb r3, [r7, #7] 8009c5c: 4a82 ldr r2, [pc, #520] ; (8009e68 ) 8009c5e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009c62: 79fb ldrb r3, [r7, #7] 8009c64: 4a81 ldr r2, [pc, #516] ; (8009e6c ) 8009c66: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009c6a: 4a81 ldr r2, [pc, #516] ; (8009e70 ) 8009c6c: 6a7b ldr r3, [r7, #36] ; 0x24 8009c6e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009c72: 2303 movs r3, #3 8009c74: f7fa fd06 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE); 8009c78: 79fb ldrb r3, [r7, #7] 8009c7a: 4a7b ldr r2, [pc, #492] ; (8009e68 ) 8009c7c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009c80: 3307 adds r3, #7 8009c82: b298 uxth r0, r3 8009c84: 79fb ldrb r3, [r7, #7] 8009c86: 4a79 ldr r2, [pc, #484] ; (8009e6c ) 8009c88: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009c8c: 2303 movs r3, #3 8009c8e: 4a79 ldr r2, [pc, #484] ; (8009e74 ) 8009c90: f7fa fcf8 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 8009c94: 79fb ldrb r3, [r7, #7] 8009c96: 4a74 ldr r2, [pc, #464] ; (8009e68 ) 8009c98: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009c9c: 330e adds r3, #14 8009c9e: b298 uxth r0, r3 8009ca0: 79fb ldrb r3, [r7, #7] 8009ca2: 4a72 ldr r2, [pc, #456] ; (8009e6c ) 8009ca4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009ca8: 4a71 ldr r2, [pc, #452] ; (8009e70 ) 8009caa: 6a3b ldr r3, [r7, #32] 8009cac: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009cb0: 2303 movs r3, #3 8009cb2: f7fa fce7 bl 8004684 if(blk) 8009cb6: 683b ldr r3, [r7, #0] 8009cb8: 2b00 cmp r3, #0 8009cba: d010 beq.n 8009cde BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 8009cbc: 79fb ldrb r3, [r7, #7] 8009cbe: 4a6a ldr r2, [pc, #424] ; (8009e68 ) 8009cc0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009cc4: 3315 adds r3, #21 8009cc6: b298 uxth r0, r3 8009cc8: 79fb ldrb r3, [r7, #7] 8009cca: 4a68 ldr r2, [pc, #416] ; (8009e6c ) 8009ccc: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009cd0: 4a67 ldr r2, [pc, #412] ; (8009e70 ) 8009cd2: 69fb ldr r3, [r7, #28] 8009cd4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009cd8: 2303 movs r3, #3 8009cda: f7fa fcd3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 8009cde: 79fb ldrb r3, [r7, #7] 8009ce0: 4a61 ldr r2, [pc, #388] ; (8009e68 ) 8009ce2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009ce6: 331c adds r3, #28 8009ce8: b298 uxth r0, r3 8009cea: 79fb ldrb r3, [r7, #7] 8009cec: 4a5f ldr r2, [pc, #380] ; (8009e6c ) 8009cee: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009cf2: 4a5f ldr r2, [pc, #380] ; (8009e70 ) 8009cf4: 69bb ldr r3, [r7, #24] 8009cf6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009cfa: 2303 movs r3, #3 8009cfc: f7fa fcc2 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 8009d00: 79fb ldrb r3, [r7, #7] 8009d02: 4a59 ldr r2, [pc, #356] ; (8009e68 ) 8009d04: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009d08: 3323 adds r3, #35 ; 0x23 8009d0a: b298 uxth r0, r3 8009d0c: 79fb ldrb r3, [r7, #7] 8009d0e: 4a57 ldr r2, [pc, #348] ; (8009e6c ) 8009d10: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009d14: 4a56 ldr r2, [pc, #344] ; (8009e70 ) 8009d16: 697b ldr r3, [r7, #20] 8009d18: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009d1c: 2303 movs r3, #3 8009d1e: f7fa fcb1 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8009d22: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009d26: 4854 ldr r0, [pc, #336] ; (8009e78 ) 8009d28: f7fa fbe6 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8009d2c: 79fb ldrb r3, [r7, #7] 8009d2e: 4a53 ldr r2, [pc, #332] ; (8009e7c ) 8009d30: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009d34: 79fb ldrb r3, [r7, #7] 8009d36: 4a52 ldr r2, [pc, #328] ; (8009e80 ) 8009d38: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009d3c: 4b51 ldr r3, [pc, #324] ; (8009e84 ) 8009d3e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009d42: b29b uxth r3, r3 8009d44: 461d mov r5, r3 8009d46: 79fb ldrb r3, [r7, #7] 8009d48: 4a4e ldr r2, [pc, #312] ; (8009e84 ) 8009d4a: 015b lsls r3, r3, #5 8009d4c: 4413 add r3, r2 8009d4e: 881b ldrh r3, [r3, #0] 8009d50: b29b uxth r3, r3 8009d52: 461c mov r4, r3 8009d54: 4a4c ldr r2, [pc, #304] ; (8009e88 ) 8009d56: 006b lsls r3, r5, #1 8009d58: 4423 add r3, r4 8009d5a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009d5e: 2303 movs r3, #3 8009d60: f7fa fc90 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8009d64: 79fb ldrb r3, [r7, #7] 8009d66: 4a49 ldr r2, [pc, #292] ; (8009e8c ) 8009d68: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009d6c: 79fb ldrb r3, [r7, #7] 8009d6e: 4a48 ldr r2, [pc, #288] ; (8009e90 ) 8009d70: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009d74: 4b43 ldr r3, [pc, #268] ; (8009e84 ) 8009d76: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009d7a: b29b uxth r3, r3 8009d7c: 4619 mov r1, r3 8009d7e: 79fb ldrb r3, [r7, #7] 8009d80: 4a40 ldr r2, [pc, #256] ; (8009e84 ) 8009d82: 015b lsls r3, r3, #5 8009d84: 4413 add r3, r2 8009d86: 3302 adds r3, #2 8009d88: 881b ldrh r3, [r3, #0] 8009d8a: b29b uxth r3, r3 8009d8c: 461d mov r5, r3 8009d8e: 4a41 ldr r2, [pc, #260] ; (8009e94 ) 8009d90: 460b mov r3, r1 8009d92: 009b lsls r3, r3, #2 8009d94: 440b add r3, r1 8009d96: 442b add r3, r5 8009d98: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009d9c: 2303 movs r3, #3 8009d9e: 4621 mov r1, r4 8009da0: f7fa fc70 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8009da4: 79fb ldrb r3, [r7, #7] 8009da6: 4a3c ldr r2, [pc, #240] ; (8009e98 ) 8009da8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009dac: 79fb ldrb r3, [r7, #7] 8009dae: 4a3b ldr r2, [pc, #236] ; (8009e9c ) 8009db0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009db4: 4b33 ldr r3, [pc, #204] ; (8009e84 ) 8009db6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009dba: b29b uxth r3, r3 8009dbc: 461d mov r5, r3 8009dbe: 79fb ldrb r3, [r7, #7] 8009dc0: 4a30 ldr r2, [pc, #192] ; (8009e84 ) 8009dc2: 015b lsls r3, r3, #5 8009dc4: 4413 add r3, r2 8009dc6: 3304 adds r3, #4 8009dc8: 881b ldrh r3, [r3, #0] 8009dca: b29b uxth r3, r3 8009dcc: 461c mov r4, r3 8009dce: 4a34 ldr r2, [pc, #208] ; (8009ea0 ) 8009dd0: 00eb lsls r3, r5, #3 8009dd2: 4423 add r3, r4 8009dd4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009dd8: 2303 movs r3, #3 8009dda: f7fa fc53 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8009dde: 79fb ldrb r3, [r7, #7] 8009de0: 4a21 ldr r2, [pc, #132] ; (8009e68 ) 8009de2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009de6: 332d adds r3, #45 ; 0x2d 8009de8: b298 uxth r0, r3 8009dea: 79fb ldrb r3, [r7, #7] 8009dec: 4a1f ldr r2, [pc, #124] ; (8009e6c ) 8009dee: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009df2: 79fb ldrb r3, [r7, #7] 8009df4: 4a23 ldr r2, [pc, #140] ; (8009e84 ) 8009df6: 015b lsls r3, r3, #5 8009df8: 4413 add r3, r2 8009dfa: 881b ldrh r3, [r3, #0] 8009dfc: b29b uxth r3, r3 8009dfe: 4619 mov r1, r3 8009e00: 79fb ldrb r3, [r7, #7] 8009e02: 4a20 ldr r2, [pc, #128] ; (8009e84 ) 8009e04: 015b lsls r3, r3, #5 8009e06: 4413 add r3, r2 8009e08: 3312 adds r3, #18 8009e0a: 881b ldrh r3, [r3, #0] 8009e0c: b29b uxth r3, r3 8009e0e: 461d mov r5, r3 8009e10: 4a24 ldr r2, [pc, #144] ; (8009ea4 ) 8009e12: 460b mov r3, r1 8009e14: 005b lsls r3, r3, #1 8009e16: 440b add r3, r1 8009e18: 442b add r3, r5 8009e1a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009e1e: 2303 movs r3, #3 8009e20: 4621 mov r1, r4 8009e22: f7fa fc2f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8009e26: 79fb ldrb r3, [r7, #7] 8009e28: 4a1f ldr r2, [pc, #124] ; (8009ea8 ) 8009e2a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009e2e: 79fb ldrb r3, [r7, #7] 8009e30: 4a1e ldr r2, [pc, #120] ; (8009eac ) 8009e32: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009e36: 79fb ldrb r3, [r7, #7] 8009e38: 4a12 ldr r2, [pc, #72] ; (8009e84 ) 8009e3a: 015b lsls r3, r3, #5 8009e3c: 4413 add r3, r2 8009e3e: 3312 adds r3, #18 8009e40: 881b ldrh r3, [r3, #0] 8009e42: b29b uxth r3, r3 8009e44: 461a mov r2, r3 8009e46: 491a ldr r1, [pc, #104] ; (8009eb0 ) 8009e48: 4613 mov r3, r2 8009e4a: 009b lsls r3, r3, #2 8009e4c: 4413 add r3, r2 8009e4e: 009a lsls r2, r3, #2 8009e50: 4413 add r3, r2 8009e52: 6afa ldr r2, [r7, #44] ; 0x2c 8009e54: 4413 add r3, r2 8009e56: f851 2023 ldr.w r2, [r1, r3, lsl #2] 8009e5a: 2303 movs r3, #3 8009e5c: 4621 mov r1, r4 8009e5e: f7fa fc11 bl 8004684 } 8009e62: f001 bc02 b.w 800b66a 8009e66: bf00 nop 8009e68: 08015564 .word 0x08015564 8009e6c: 0801556c .word 0x0801556c 8009e70: 200201ec .word 0x200201ec 8009e74: 08012cb8 .word 0x08012cb8 8009e78: ffd8aa57 .word 0xffd8aa57 8009e7c: 08015534 .word 0x08015534 8009e80: 0801553c .word 0x0801553c 8009e84: 2006b510 .word 0x2006b510 8009e88: 20020030 .word 0x20020030 8009e8c: 08015544 .word 0x08015544 8009e90: 0801554c .word 0x0801554c 8009e94: 20020040 .word 0x20020040 8009e98: 08015554 .word 0x08015554 8009e9c: 0801555c .word 0x0801555c 8009ea0: 20020068 .word 0x20020068 8009ea4: 200200a8 .word 0x200200a8 8009ea8: 08015574 .word 0x08015574 8009eac: 0801557c .word 0x0801557c 8009eb0: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 8009eb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 8009eb8: 488c ldr r0, [pc, #560] ; (800a0ec ) 8009eba: f7fa fb1d bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 8009ebe: 79fb ldrb r3, [r7, #7] 8009ec0: 4a8b ldr r2, [pc, #556] ; (800a0f0 ) 8009ec2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009ec6: 79fb ldrb r3, [r7, #7] 8009ec8: 4a8a ldr r2, [pc, #552] ; (800a0f4 ) 8009eca: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009ece: 4b8a ldr r3, [pc, #552] ; (800a0f8 ) 8009ed0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009ed4: b29b uxth r3, r3 8009ed6: 461d mov r5, r3 8009ed8: 79fb ldrb r3, [r7, #7] 8009eda: 4a87 ldr r2, [pc, #540] ; (800a0f8 ) 8009edc: 015b lsls r3, r3, #5 8009ede: 4413 add r3, r2 8009ee0: 881b ldrh r3, [r3, #0] 8009ee2: b29b uxth r3, r3 8009ee4: 461c mov r4, r3 8009ee6: 4a85 ldr r2, [pc, #532] ; (800a0fc ) 8009ee8: 006b lsls r3, r5, #1 8009eea: 4423 add r3, r4 8009eec: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009ef0: 2303 movs r3, #3 8009ef2: f7fa fbc7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 8009ef6: 79fb ldrb r3, [r7, #7] 8009ef8: 4a81 ldr r2, [pc, #516] ; (800a100 ) 8009efa: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009efe: 79fb ldrb r3, [r7, #7] 8009f00: 4a80 ldr r2, [pc, #512] ; (800a104 ) 8009f02: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009f06: 4b7c ldr r3, [pc, #496] ; (800a0f8 ) 8009f08: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009f0c: b29b uxth r3, r3 8009f0e: 4619 mov r1, r3 8009f10: 79fb ldrb r3, [r7, #7] 8009f12: 4a79 ldr r2, [pc, #484] ; (800a0f8 ) 8009f14: 015b lsls r3, r3, #5 8009f16: 4413 add r3, r2 8009f18: 3302 adds r3, #2 8009f1a: 881b ldrh r3, [r3, #0] 8009f1c: b29b uxth r3, r3 8009f1e: 461d mov r5, r3 8009f20: 4a79 ldr r2, [pc, #484] ; (800a108 ) 8009f22: 460b mov r3, r1 8009f24: 009b lsls r3, r3, #2 8009f26: 440b add r3, r1 8009f28: 442b add r3, r5 8009f2a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009f2e: 2303 movs r3, #3 8009f30: 4621 mov r1, r4 8009f32: f7fa fba7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 8009f36: 79fb ldrb r3, [r7, #7] 8009f38: 4a74 ldr r2, [pc, #464] ; (800a10c ) 8009f3a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009f3e: 79fb ldrb r3, [r7, #7] 8009f40: 4a73 ldr r2, [pc, #460] ; (800a110 ) 8009f42: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009f46: 4b6c ldr r3, [pc, #432] ; (800a0f8 ) 8009f48: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 8009f4c: b29b uxth r3, r3 8009f4e: 461d mov r5, r3 8009f50: 79fb ldrb r3, [r7, #7] 8009f52: 4a69 ldr r2, [pc, #420] ; (800a0f8 ) 8009f54: 015b lsls r3, r3, #5 8009f56: 4413 add r3, r2 8009f58: 3304 adds r3, #4 8009f5a: 881b ldrh r3, [r3, #0] 8009f5c: b29b uxth r3, r3 8009f5e: 461c mov r4, r3 8009f60: 4a6c ldr r2, [pc, #432] ; (800a114 ) 8009f62: 00eb lsls r3, r5, #3 8009f64: 4423 add r3, r4 8009f66: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009f6a: 2303 movs r3, #3 8009f6c: f7fa fb8a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 8009f70: 79fb ldrb r3, [r7, #7] 8009f72: 4a69 ldr r2, [pc, #420] ; (800a118 ) 8009f74: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009f78: 79fb ldrb r3, [r7, #7] 8009f7a: 4a68 ldr r2, [pc, #416] ; (800a11c ) 8009f7c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 8009f80: f107 0208 add.w r2, r7, #8 8009f84: 2303 movs r3, #3 8009f86: f7fa fb7d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 8009f8a: 79fb ldrb r3, [r7, #7] 8009f8c: 4a62 ldr r2, [pc, #392] ; (800a118 ) 8009f8e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 8009f92: 332d adds r3, #45 ; 0x2d 8009f94: b298 uxth r0, r3 8009f96: 79fb ldrb r3, [r7, #7] 8009f98: 4a60 ldr r2, [pc, #384] ; (800a11c ) 8009f9a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009f9e: 79fb ldrb r3, [r7, #7] 8009fa0: 4a55 ldr r2, [pc, #340] ; (800a0f8 ) 8009fa2: 015b lsls r3, r3, #5 8009fa4: 4413 add r3, r2 8009fa6: 881b ldrh r3, [r3, #0] 8009fa8: b29b uxth r3, r3 8009faa: 4619 mov r1, r3 8009fac: 79fb ldrb r3, [r7, #7] 8009fae: 4a52 ldr r2, [pc, #328] ; (800a0f8 ) 8009fb0: 015b lsls r3, r3, #5 8009fb2: 4413 add r3, r2 8009fb4: 3312 adds r3, #18 8009fb6: 881b ldrh r3, [r3, #0] 8009fb8: b29b uxth r3, r3 8009fba: 461d mov r5, r3 8009fbc: 4a58 ldr r2, [pc, #352] ; (800a120 ) 8009fbe: 460b mov r3, r1 8009fc0: 005b lsls r3, r3, #1 8009fc2: 440b add r3, r1 8009fc4: 442b add r3, r5 8009fc6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 8009fca: 2303 movs r3, #3 8009fcc: 4621 mov r1, r4 8009fce: f7fa fb59 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 8009fd2: 79fb ldrb r3, [r7, #7] 8009fd4: 4a53 ldr r2, [pc, #332] ; (800a124 ) 8009fd6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 8009fda: 79fb ldrb r3, [r7, #7] 8009fdc: 4a52 ldr r2, [pc, #328] ; (800a128 ) 8009fde: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 8009fe2: 79fb ldrb r3, [r7, #7] 8009fe4: 4a44 ldr r2, [pc, #272] ; (800a0f8 ) 8009fe6: 015b lsls r3, r3, #5 8009fe8: 4413 add r3, r2 8009fea: 3312 adds r3, #18 8009fec: 881b ldrh r3, [r3, #0] 8009fee: b29b uxth r3, r3 8009ff0: 461a mov r2, r3 8009ff2: 494e ldr r1, [pc, #312] ; (800a12c ) 8009ff4: 4613 mov r3, r2 8009ff6: 009b lsls r3, r3, #2 8009ff8: 4413 add r3, r2 8009ffa: 009a lsls r2, r3, #2 8009ffc: 4413 add r3, r2 8009ffe: 6afa ldr r2, [r7, #44] ; 0x2c 800a000: 4413 add r3, r2 800a002: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800a006: 2303 movs r3, #3 800a008: 4621 mov r1, r4 800a00a: f7fa fb3b bl 8004684 } 800a00e: f001 bb2c b.w 800b66a if(menupos == Kikd) 800a012: 4b47 ldr r3, [pc, #284] ; (800a130 ) 800a014: 781b ldrb r3, [r3, #0] 800a016: b2db uxtb r3, r3 800a018: 2b09 cmp r3, #9 800a01a: f040 83ae bne.w 800a77a if(ACTIVE_CHANNEL == ch) 800a01e: 79fa ldrb r2, [r7, #7] 800a020: 4b44 ldr r3, [pc, #272] ; (800a134 ) 800a022: 681b ldr r3, [r3, #0] 800a024: 429a cmp r2, r3 800a026: f040 82f9 bne.w 800a61c LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a02a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a02e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a032: f7fa fa61 bl 80044f8 if(!ipt) 800a036: 6b3b ldr r3, [r7, #48] ; 0x30 800a038: 2b00 cmp r3, #0 800a03a: d17f bne.n 800a13c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a03c: 79fb ldrb r3, [r7, #7] 800a03e: 4a36 ldr r2, [pc, #216] ; (800a118 ) 800a040: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a044: 79fb ldrb r3, [r7, #7] 800a046: 4a35 ldr r2, [pc, #212] ; (800a11c ) 800a048: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a04c: 4a3a ldr r2, [pc, #232] ; (800a138 ) 800a04e: 6a7b ldr r3, [r7, #36] ; 0x24 800a050: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a054: 2303 movs r3, #3 800a056: f7fa fb15 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a05a: 79fb ldrb r3, [r7, #7] 800a05c: 4a2e ldr r2, [pc, #184] ; (800a118 ) 800a05e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a062: 3307 adds r3, #7 800a064: b298 uxth r0, r3 800a066: 79fb ldrb r3, [r7, #7] 800a068: 4a2c ldr r2, [pc, #176] ; (800a11c ) 800a06a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a06e: 4a32 ldr r2, [pc, #200] ; (800a138 ) 800a070: 6a3b ldr r3, [r7, #32] 800a072: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a076: 2303 movs r3, #3 800a078: f7fa fb04 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a07c: 79fb ldrb r3, [r7, #7] 800a07e: 4a26 ldr r2, [pc, #152] ; (800a118 ) 800a080: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a084: 330e adds r3, #14 800a086: b298 uxth r0, r3 800a088: 79fb ldrb r3, [r7, #7] 800a08a: 4a24 ldr r2, [pc, #144] ; (800a11c ) 800a08c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a090: 4a29 ldr r2, [pc, #164] ; (800a138 ) 800a092: 69fb ldr r3, [r7, #28] 800a094: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a098: 2303 movs r3, #3 800a09a: f7fa faf3 bl 8004684 if(blk) 800a09e: 683b ldr r3, [r7, #0] 800a0a0: 2b00 cmp r3, #0 800a0a2: d010 beq.n 800a0c6 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a0a4: 79fb ldrb r3, [r7, #7] 800a0a6: 4a1c ldr r2, [pc, #112] ; (800a118 ) 800a0a8: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a0ac: 3315 adds r3, #21 800a0ae: b298 uxth r0, r3 800a0b0: 79fb ldrb r3, [r7, #7] 800a0b2: 4a1a ldr r2, [pc, #104] ; (800a11c ) 800a0b4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a0b8: 4a1f ldr r2, [pc, #124] ; (800a138 ) 800a0ba: 69bb ldr r3, [r7, #24] 800a0bc: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a0c0: 2303 movs r3, #3 800a0c2: f7fa fadf bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800a0c6: 79fb ldrb r3, [r7, #7] 800a0c8: 4a13 ldr r2, [pc, #76] ; (800a118 ) 800a0ca: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a0ce: 331c adds r3, #28 800a0d0: b298 uxth r0, r3 800a0d2: 79fb ldrb r3, [r7, #7] 800a0d4: 4a11 ldr r2, [pc, #68] ; (800a11c ) 800a0d6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a0da: 4a17 ldr r2, [pc, #92] ; (800a138 ) 800a0dc: 697b ldr r3, [r7, #20] 800a0de: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a0e2: 2303 movs r3, #3 800a0e4: f7fa face bl 8004684 800a0e8: e1cf b.n 800a48a 800a0ea: bf00 nop 800a0ec: ffd8aa57 .word 0xffd8aa57 800a0f0: 08015534 .word 0x08015534 800a0f4: 0801553c .word 0x0801553c 800a0f8: 2006b510 .word 0x2006b510 800a0fc: 20020030 .word 0x20020030 800a100: 08015544 .word 0x08015544 800a104: 0801554c .word 0x0801554c 800a108: 20020040 .word 0x20020040 800a10c: 08015554 .word 0x08015554 800a110: 0801555c .word 0x0801555c 800a114: 20020068 .word 0x20020068 800a118: 08015564 .word 0x08015564 800a11c: 0801556c .word 0x0801556c 800a120: 200200a8 .word 0x200200a8 800a124: 08015574 .word 0x08015574 800a128: 0801557c .word 0x0801557c 800a12c: 200200c0 .word 0x200200c0 800a130: 20020010 .word 0x20020010 800a134: 2006b2d0 .word 0x2006b2d0 800a138: 200201ec .word 0x200201ec if(ipt == 1) 800a13c: 6b3b ldr r3, [r7, #48] ; 0x30 800a13e: 2b01 cmp r3, #1 800a140: d164 bne.n 800a20c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a142: 79fb ldrb r3, [r7, #7] 800a144: 4a99 ldr r2, [pc, #612] ; (800a3ac ) 800a146: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a14a: 79fb ldrb r3, [r7, #7] 800a14c: 4a98 ldr r2, [pc, #608] ; (800a3b0 ) 800a14e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a152: 4a98 ldr r2, [pc, #608] ; (800a3b4 ) 800a154: 6a7b ldr r3, [r7, #36] ; 0x24 800a156: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a15a: 2303 movs r3, #3 800a15c: f7fa fa92 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a160: 79fb ldrb r3, [r7, #7] 800a162: 4a92 ldr r2, [pc, #584] ; (800a3ac ) 800a164: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a168: 3307 adds r3, #7 800a16a: b298 uxth r0, r3 800a16c: 79fb ldrb r3, [r7, #7] 800a16e: 4a90 ldr r2, [pc, #576] ; (800a3b0 ) 800a170: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a174: 4a8f ldr r2, [pc, #572] ; (800a3b4 ) 800a176: 6a3b ldr r3, [r7, #32] 800a178: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a17c: 2303 movs r3, #3 800a17e: f7fa fa81 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a182: 79fb ldrb r3, [r7, #7] 800a184: 4a89 ldr r2, [pc, #548] ; (800a3ac ) 800a186: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a18a: 330e adds r3, #14 800a18c: b298 uxth r0, r3 800a18e: 79fb ldrb r3, [r7, #7] 800a190: 4a87 ldr r2, [pc, #540] ; (800a3b0 ) 800a192: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a196: 4a87 ldr r2, [pc, #540] ; (800a3b4 ) 800a198: 69fb ldr r3, [r7, #28] 800a19a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a19e: 2303 movs r3, #3 800a1a0: f7fa fa70 bl 8004684 if(blk) 800a1a4: 683b ldr r3, [r7, #0] 800a1a6: 2b00 cmp r3, #0 800a1a8: d010 beq.n 800a1cc BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a1aa: 79fb ldrb r3, [r7, #7] 800a1ac: 4a7f ldr r2, [pc, #508] ; (800a3ac ) 800a1ae: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a1b2: 3315 adds r3, #21 800a1b4: b298 uxth r0, r3 800a1b6: 79fb ldrb r3, [r7, #7] 800a1b8: 4a7d ldr r2, [pc, #500] ; (800a3b0 ) 800a1ba: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a1be: 4a7d ldr r2, [pc, #500] ; (800a3b4 ) 800a1c0: 69bb ldr r3, [r7, #24] 800a1c2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a1c6: 2303 movs r3, #3 800a1c8: f7fa fa5c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE); 800a1cc: 79fb ldrb r3, [r7, #7] 800a1ce: 4a77 ldr r2, [pc, #476] ; (800a3ac ) 800a1d0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a1d4: 331c adds r3, #28 800a1d6: b298 uxth r0, r3 800a1d8: 79fb ldrb r3, [r7, #7] 800a1da: 4a75 ldr r2, [pc, #468] ; (800a3b0 ) 800a1dc: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a1e0: 2303 movs r3, #3 800a1e2: 4a75 ldr r2, [pc, #468] ; (800a3b8 ) 800a1e4: f7fa fa4e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800a1e8: 79fb ldrb r3, [r7, #7] 800a1ea: 4a70 ldr r2, [pc, #448] ; (800a3ac ) 800a1ec: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a1f0: 3323 adds r3, #35 ; 0x23 800a1f2: b298 uxth r0, r3 800a1f4: 79fb ldrb r3, [r7, #7] 800a1f6: 4a6e ldr r2, [pc, #440] ; (800a3b0 ) 800a1f8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a1fc: 4a6d ldr r2, [pc, #436] ; (800a3b4 ) 800a1fe: 697b ldr r3, [r7, #20] 800a200: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a204: 2303 movs r3, #3 800a206: f7fa fa3d bl 8004684 800a20a: e13e b.n 800a48a if(ipt == 2) 800a20c: 6b3b ldr r3, [r7, #48] ; 0x30 800a20e: 2b02 cmp r3, #2 800a210: d164 bne.n 800a2dc BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a212: 79fb ldrb r3, [r7, #7] 800a214: 4a65 ldr r2, [pc, #404] ; (800a3ac ) 800a216: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a21a: 79fb ldrb r3, [r7, #7] 800a21c: 4a64 ldr r2, [pc, #400] ; (800a3b0 ) 800a21e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a222: 4a64 ldr r2, [pc, #400] ; (800a3b4 ) 800a224: 6a7b ldr r3, [r7, #36] ; 0x24 800a226: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a22a: 2303 movs r3, #3 800a22c: f7fa fa2a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a230: 79fb ldrb r3, [r7, #7] 800a232: 4a5e ldr r2, [pc, #376] ; (800a3ac ) 800a234: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a238: 3307 adds r3, #7 800a23a: b298 uxth r0, r3 800a23c: 79fb ldrb r3, [r7, #7] 800a23e: 4a5c ldr r2, [pc, #368] ; (800a3b0 ) 800a240: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a244: 4a5b ldr r2, [pc, #364] ; (800a3b4 ) 800a246: 6a3b ldr r3, [r7, #32] 800a248: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a24c: 2303 movs r3, #3 800a24e: f7fa fa19 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a252: 79fb ldrb r3, [r7, #7] 800a254: 4a55 ldr r2, [pc, #340] ; (800a3ac ) 800a256: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a25a: 330e adds r3, #14 800a25c: b298 uxth r0, r3 800a25e: 79fb ldrb r3, [r7, #7] 800a260: 4a53 ldr r2, [pc, #332] ; (800a3b0 ) 800a262: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a266: 4a53 ldr r2, [pc, #332] ; (800a3b4 ) 800a268: 69fb ldr r3, [r7, #28] 800a26a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a26e: 2303 movs r3, #3 800a270: f7fa fa08 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE); 800a274: 79fb ldrb r3, [r7, #7] 800a276: 4a4d ldr r2, [pc, #308] ; (800a3ac ) 800a278: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a27c: 3315 adds r3, #21 800a27e: b298 uxth r0, r3 800a280: 79fb ldrb r3, [r7, #7] 800a282: 4a4b ldr r2, [pc, #300] ; (800a3b0 ) 800a284: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a288: 2303 movs r3, #3 800a28a: 4a4b ldr r2, [pc, #300] ; (800a3b8 ) 800a28c: f7fa f9fa bl 8004684 if(blk) 800a290: 683b ldr r3, [r7, #0] 800a292: 2b00 cmp r3, #0 800a294: d010 beq.n 800a2b8 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a296: 79fb ldrb r3, [r7, #7] 800a298: 4a44 ldr r2, [pc, #272] ; (800a3ac ) 800a29a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a29e: 331c adds r3, #28 800a2a0: b298 uxth r0, r3 800a2a2: 79fb ldrb r3, [r7, #7] 800a2a4: 4a42 ldr r2, [pc, #264] ; (800a3b0 ) 800a2a6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a2aa: 4a42 ldr r2, [pc, #264] ; (800a3b4 ) 800a2ac: 69bb ldr r3, [r7, #24] 800a2ae: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a2b2: 2303 movs r3, #3 800a2b4: f7fa f9e6 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800a2b8: 79fb ldrb r3, [r7, #7] 800a2ba: 4a3c ldr r2, [pc, #240] ; (800a3ac ) 800a2bc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a2c0: 3323 adds r3, #35 ; 0x23 800a2c2: b298 uxth r0, r3 800a2c4: 79fb ldrb r3, [r7, #7] 800a2c6: 4a3a ldr r2, [pc, #232] ; (800a3b0 ) 800a2c8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a2cc: 4a39 ldr r2, [pc, #228] ; (800a3b4 ) 800a2ce: 697b ldr r3, [r7, #20] 800a2d0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a2d4: 2303 movs r3, #3 800a2d6: f7fa f9d5 bl 8004684 800a2da: e0d6 b.n 800a48a if(ipt == 3) 800a2dc: 6b3b ldr r3, [r7, #48] ; 0x30 800a2de: 2b03 cmp r3, #3 800a2e0: d16c bne.n 800a3bc BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a2e2: 79fb ldrb r3, [r7, #7] 800a2e4: 4a31 ldr r2, [pc, #196] ; (800a3ac ) 800a2e6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a2ea: 79fb ldrb r3, [r7, #7] 800a2ec: 4a30 ldr r2, [pc, #192] ; (800a3b0 ) 800a2ee: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a2f2: 4a30 ldr r2, [pc, #192] ; (800a3b4 ) 800a2f4: 6a7b ldr r3, [r7, #36] ; 0x24 800a2f6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a2fa: 2303 movs r3, #3 800a2fc: f7fa f9c2 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a300: 79fb ldrb r3, [r7, #7] 800a302: 4a2a ldr r2, [pc, #168] ; (800a3ac ) 800a304: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a308: 3307 adds r3, #7 800a30a: b298 uxth r0, r3 800a30c: 79fb ldrb r3, [r7, #7] 800a30e: 4a28 ldr r2, [pc, #160] ; (800a3b0 ) 800a310: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a314: 4a27 ldr r2, [pc, #156] ; (800a3b4 ) 800a316: 6a3b ldr r3, [r7, #32] 800a318: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a31c: 2303 movs r3, #3 800a31e: f7fa f9b1 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE); 800a322: 79fb ldrb r3, [r7, #7] 800a324: 4a21 ldr r2, [pc, #132] ; (800a3ac ) 800a326: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a32a: 330e adds r3, #14 800a32c: b298 uxth r0, r3 800a32e: 79fb ldrb r3, [r7, #7] 800a330: 4a1f ldr r2, [pc, #124] ; (800a3b0 ) 800a332: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a336: 2303 movs r3, #3 800a338: 4a1f ldr r2, [pc, #124] ; (800a3b8 ) 800a33a: f7fa f9a3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a33e: 79fb ldrb r3, [r7, #7] 800a340: 4a1a ldr r2, [pc, #104] ; (800a3ac ) 800a342: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a346: 3315 adds r3, #21 800a348: b298 uxth r0, r3 800a34a: 79fb ldrb r3, [r7, #7] 800a34c: 4a18 ldr r2, [pc, #96] ; (800a3b0 ) 800a34e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a352: 4a18 ldr r2, [pc, #96] ; (800a3b4 ) 800a354: 69fb ldr r3, [r7, #28] 800a356: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a35a: 2303 movs r3, #3 800a35c: f7fa f992 bl 8004684 if(blk) 800a360: 683b ldr r3, [r7, #0] 800a362: 2b00 cmp r3, #0 800a364: d010 beq.n 800a388 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a366: 79fb ldrb r3, [r7, #7] 800a368: 4a10 ldr r2, [pc, #64] ; (800a3ac ) 800a36a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a36e: 331c adds r3, #28 800a370: b298 uxth r0, r3 800a372: 79fb ldrb r3, [r7, #7] 800a374: 4a0e ldr r2, [pc, #56] ; (800a3b0 ) 800a376: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a37a: 4a0e ldr r2, [pc, #56] ; (800a3b4 ) 800a37c: 69bb ldr r3, [r7, #24] 800a37e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a382: 2303 movs r3, #3 800a384: f7fa f97e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800a388: 79fb ldrb r3, [r7, #7] 800a38a: 4a08 ldr r2, [pc, #32] ; (800a3ac ) 800a38c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a390: 3323 adds r3, #35 ; 0x23 800a392: b298 uxth r0, r3 800a394: 79fb ldrb r3, [r7, #7] 800a396: 4a06 ldr r2, [pc, #24] ; (800a3b0 ) 800a398: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a39c: 4a05 ldr r2, [pc, #20] ; (800a3b4 ) 800a39e: 697b ldr r3, [r7, #20] 800a3a0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a3a4: 2303 movs r3, #3 800a3a6: f7fa f96d bl 8004684 800a3aa: e06e b.n 800a48a 800a3ac: 08015564 .word 0x08015564 800a3b0: 0801556c .word 0x0801556c 800a3b4: 200201ec .word 0x200201ec 800a3b8: 08012cb8 .word 0x08012cb8 if(ipt == 4) 800a3bc: 6b3b ldr r3, [r7, #48] ; 0x30 800a3be: 2b04 cmp r3, #4 800a3c0: d163 bne.n 800a48a BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a3c2: 79fb ldrb r3, [r7, #7] 800a3c4: 4a82 ldr r2, [pc, #520] ; (800a5d0 ) 800a3c6: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a3ca: 79fb ldrb r3, [r7, #7] 800a3cc: 4a81 ldr r2, [pc, #516] ; (800a5d4 ) 800a3ce: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a3d2: 4a81 ldr r2, [pc, #516] ; (800a5d8 ) 800a3d4: 6a7b ldr r3, [r7, #36] ; 0x24 800a3d6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a3da: 2303 movs r3, #3 800a3dc: f7fa f952 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE); 800a3e0: 79fb ldrb r3, [r7, #7] 800a3e2: 4a7b ldr r2, [pc, #492] ; (800a5d0 ) 800a3e4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a3e8: 3307 adds r3, #7 800a3ea: b298 uxth r0, r3 800a3ec: 79fb ldrb r3, [r7, #7] 800a3ee: 4a79 ldr r2, [pc, #484] ; (800a5d4 ) 800a3f0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a3f4: 2303 movs r3, #3 800a3f6: 4a79 ldr r2, [pc, #484] ; (800a5dc ) 800a3f8: f7fa f944 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a3fc: 79fb ldrb r3, [r7, #7] 800a3fe: 4a74 ldr r2, [pc, #464] ; (800a5d0 ) 800a400: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a404: 330e adds r3, #14 800a406: b298 uxth r0, r3 800a408: 79fb ldrb r3, [r7, #7] 800a40a: 4a72 ldr r2, [pc, #456] ; (800a5d4 ) 800a40c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a410: 4a71 ldr r2, [pc, #452] ; (800a5d8 ) 800a412: 6a3b ldr r3, [r7, #32] 800a414: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a418: 2303 movs r3, #3 800a41a: f7fa f933 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a41e: 79fb ldrb r3, [r7, #7] 800a420: 4a6b ldr r2, [pc, #428] ; (800a5d0 ) 800a422: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a426: 3315 adds r3, #21 800a428: b298 uxth r0, r3 800a42a: 79fb ldrb r3, [r7, #7] 800a42c: 4a69 ldr r2, [pc, #420] ; (800a5d4 ) 800a42e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a432: 4a69 ldr r2, [pc, #420] ; (800a5d8 ) 800a434: 69fb ldr r3, [r7, #28] 800a436: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a43a: 2303 movs r3, #3 800a43c: f7fa f922 bl 8004684 if(blk) 800a440: 683b ldr r3, [r7, #0] 800a442: 2b00 cmp r3, #0 800a444: d010 beq.n 800a468 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a446: 79fb ldrb r3, [r7, #7] 800a448: 4a61 ldr r2, [pc, #388] ; (800a5d0 ) 800a44a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a44e: 331c adds r3, #28 800a450: b298 uxth r0, r3 800a452: 79fb ldrb r3, [r7, #7] 800a454: 4a5f ldr r2, [pc, #380] ; (800a5d4 ) 800a456: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a45a: 4a5f ldr r2, [pc, #380] ; (800a5d8 ) 800a45c: 69bb ldr r3, [r7, #24] 800a45e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a462: 2303 movs r3, #3 800a464: f7fa f90e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800a468: 79fb ldrb r3, [r7, #7] 800a46a: 4a59 ldr r2, [pc, #356] ; (800a5d0 ) 800a46c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a470: 3323 adds r3, #35 ; 0x23 800a472: b298 uxth r0, r3 800a474: 79fb ldrb r3, [r7, #7] 800a476: 4a57 ldr r2, [pc, #348] ; (800a5d4 ) 800a478: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a47c: 4a56 ldr r2, [pc, #344] ; (800a5d8 ) 800a47e: 697b ldr r3, [r7, #20] 800a480: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a484: 2303 movs r3, #3 800a486: f7fa f8fd bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800a48a: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a48e: 4854 ldr r0, [pc, #336] ; (800a5e0 ) 800a490: f7fa f832 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800a494: 79fb ldrb r3, [r7, #7] 800a496: 4a53 ldr r2, [pc, #332] ; (800a5e4 ) 800a498: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a49c: 79fb ldrb r3, [r7, #7] 800a49e: 4a52 ldr r2, [pc, #328] ; (800a5e8 ) 800a4a0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a4a4: 4b51 ldr r3, [pc, #324] ; (800a5ec ) 800a4a6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800a4aa: b29b uxth r3, r3 800a4ac: 461d mov r5, r3 800a4ae: 79fb ldrb r3, [r7, #7] 800a4b0: 4a4e ldr r2, [pc, #312] ; (800a5ec ) 800a4b2: 015b lsls r3, r3, #5 800a4b4: 4413 add r3, r2 800a4b6: 881b ldrh r3, [r3, #0] 800a4b8: b29b uxth r3, r3 800a4ba: 461c mov r4, r3 800a4bc: 4a4c ldr r2, [pc, #304] ; (800a5f0 ) 800a4be: 006b lsls r3, r5, #1 800a4c0: 4423 add r3, r4 800a4c2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a4c6: 2303 movs r3, #3 800a4c8: f7fa f8dc bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800a4cc: 79fb ldrb r3, [r7, #7] 800a4ce: 4a49 ldr r2, [pc, #292] ; (800a5f4 ) 800a4d0: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a4d4: 79fb ldrb r3, [r7, #7] 800a4d6: 4a48 ldr r2, [pc, #288] ; (800a5f8 ) 800a4d8: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800a4dc: 4b43 ldr r3, [pc, #268] ; (800a5ec ) 800a4de: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800a4e2: b29b uxth r3, r3 800a4e4: 4619 mov r1, r3 800a4e6: 79fb ldrb r3, [r7, #7] 800a4e8: 4a40 ldr r2, [pc, #256] ; (800a5ec ) 800a4ea: 015b lsls r3, r3, #5 800a4ec: 4413 add r3, r2 800a4ee: 3302 adds r3, #2 800a4f0: 881b ldrh r3, [r3, #0] 800a4f2: b29b uxth r3, r3 800a4f4: 461d mov r5, r3 800a4f6: 4a41 ldr r2, [pc, #260] ; (800a5fc ) 800a4f8: 460b mov r3, r1 800a4fa: 009b lsls r3, r3, #2 800a4fc: 440b add r3, r1 800a4fe: 442b add r3, r5 800a500: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a504: 2303 movs r3, #3 800a506: 4621 mov r1, r4 800a508: f7fa f8bc bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800a50c: 79fb ldrb r3, [r7, #7] 800a50e: 4a3c ldr r2, [pc, #240] ; (800a600 ) 800a510: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a514: 79fb ldrb r3, [r7, #7] 800a516: 4a3b ldr r2, [pc, #236] ; (800a604 ) 800a518: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a51c: 4b33 ldr r3, [pc, #204] ; (800a5ec ) 800a51e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800a522: b29b uxth r3, r3 800a524: 461d mov r5, r3 800a526: 79fb ldrb r3, [r7, #7] 800a528: 4a30 ldr r2, [pc, #192] ; (800a5ec ) 800a52a: 015b lsls r3, r3, #5 800a52c: 4413 add r3, r2 800a52e: 3304 adds r3, #4 800a530: 881b ldrh r3, [r3, #0] 800a532: b29b uxth r3, r3 800a534: 461c mov r4, r3 800a536: 4a34 ldr r2, [pc, #208] ; (800a608 ) 800a538: 00eb lsls r3, r5, #3 800a53a: 4423 add r3, r4 800a53c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a540: 2303 movs r3, #3 800a542: f7fa f89f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 800a546: 79fb ldrb r3, [r7, #7] 800a548: 4a21 ldr r2, [pc, #132] ; (800a5d0 ) 800a54a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a54e: 332d adds r3, #45 ; 0x2d 800a550: b298 uxth r0, r3 800a552: 79fb ldrb r3, [r7, #7] 800a554: 4a1f ldr r2, [pc, #124] ; (800a5d4 ) 800a556: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800a55a: 79fb ldrb r3, [r7, #7] 800a55c: 4a23 ldr r2, [pc, #140] ; (800a5ec ) 800a55e: 015b lsls r3, r3, #5 800a560: 4413 add r3, r2 800a562: 881b ldrh r3, [r3, #0] 800a564: b29b uxth r3, r3 800a566: 4619 mov r1, r3 800a568: 79fb ldrb r3, [r7, #7] 800a56a: 4a20 ldr r2, [pc, #128] ; (800a5ec ) 800a56c: 015b lsls r3, r3, #5 800a56e: 4413 add r3, r2 800a570: 3312 adds r3, #18 800a572: 881b ldrh r3, [r3, #0] 800a574: b29b uxth r3, r3 800a576: 461d mov r5, r3 800a578: 4a24 ldr r2, [pc, #144] ; (800a60c ) 800a57a: 460b mov r3, r1 800a57c: 005b lsls r3, r3, #1 800a57e: 440b add r3, r1 800a580: 442b add r3, r5 800a582: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a586: 2303 movs r3, #3 800a588: 4621 mov r1, r4 800a58a: f7fa f87b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800a58e: 79fb ldrb r3, [r7, #7] 800a590: 4a1f ldr r2, [pc, #124] ; (800a610 ) 800a592: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a596: 79fb ldrb r3, [r7, #7] 800a598: 4a1e ldr r2, [pc, #120] ; (800a614 ) 800a59a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800a59e: 79fb ldrb r3, [r7, #7] 800a5a0: 4a12 ldr r2, [pc, #72] ; (800a5ec ) 800a5a2: 015b lsls r3, r3, #5 800a5a4: 4413 add r3, r2 800a5a6: 3312 adds r3, #18 800a5a8: 881b ldrh r3, [r3, #0] 800a5aa: b29b uxth r3, r3 800a5ac: 461a mov r2, r3 800a5ae: 491a ldr r1, [pc, #104] ; (800a618 ) 800a5b0: 4613 mov r3, r2 800a5b2: 009b lsls r3, r3, #2 800a5b4: 4413 add r3, r2 800a5b6: 009a lsls r2, r3, #2 800a5b8: 4413 add r3, r2 800a5ba: 6afa ldr r2, [r7, #44] ; 0x2c 800a5bc: 4413 add r3, r2 800a5be: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800a5c2: 2303 movs r3, #3 800a5c4: 4621 mov r1, r4 800a5c6: f7fa f85d bl 8004684 } 800a5ca: f001 b84e b.w 800b66a 800a5ce: bf00 nop 800a5d0: 08015564 .word 0x08015564 800a5d4: 0801556c .word 0x0801556c 800a5d8: 200201ec .word 0x200201ec 800a5dc: 08012cb8 .word 0x08012cb8 800a5e0: ffd8aa57 .word 0xffd8aa57 800a5e4: 08015534 .word 0x08015534 800a5e8: 0801553c .word 0x0801553c 800a5ec: 2006b510 .word 0x2006b510 800a5f0: 20020030 .word 0x20020030 800a5f4: 08015544 .word 0x08015544 800a5f8: 0801554c .word 0x0801554c 800a5fc: 20020040 .word 0x20020040 800a600: 08015554 .word 0x08015554 800a604: 0801555c .word 0x0801555c 800a608: 20020068 .word 0x20020068 800a60c: 200200a8 .word 0x200200a8 800a610: 08015574 .word 0x08015574 800a614: 0801557c .word 0x0801557c 800a618: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800a61c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a620: 488c ldr r0, [pc, #560] ; (800a854 ) 800a622: f7f9 ff69 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800a626: 79fb ldrb r3, [r7, #7] 800a628: 4a8b ldr r2, [pc, #556] ; (800a858 ) 800a62a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a62e: 79fb ldrb r3, [r7, #7] 800a630: 4a8a ldr r2, [pc, #552] ; (800a85c ) 800a632: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a636: 4b8a ldr r3, [pc, #552] ; (800a860 ) 800a638: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800a63c: b29b uxth r3, r3 800a63e: 461d mov r5, r3 800a640: 79fb ldrb r3, [r7, #7] 800a642: 4a87 ldr r2, [pc, #540] ; (800a860 ) 800a644: 015b lsls r3, r3, #5 800a646: 4413 add r3, r2 800a648: 881b ldrh r3, [r3, #0] 800a64a: b29b uxth r3, r3 800a64c: 461c mov r4, r3 800a64e: 4a85 ldr r2, [pc, #532] ; (800a864 ) 800a650: 006b lsls r3, r5, #1 800a652: 4423 add r3, r4 800a654: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a658: 2303 movs r3, #3 800a65a: f7fa f813 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800a65e: 79fb ldrb r3, [r7, #7] 800a660: 4a81 ldr r2, [pc, #516] ; (800a868 ) 800a662: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a666: 79fb ldrb r3, [r7, #7] 800a668: 4a80 ldr r2, [pc, #512] ; (800a86c ) 800a66a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800a66e: 4b7c ldr r3, [pc, #496] ; (800a860 ) 800a670: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800a674: b29b uxth r3, r3 800a676: 4619 mov r1, r3 800a678: 79fb ldrb r3, [r7, #7] 800a67a: 4a79 ldr r2, [pc, #484] ; (800a860 ) 800a67c: 015b lsls r3, r3, #5 800a67e: 4413 add r3, r2 800a680: 3302 adds r3, #2 800a682: 881b ldrh r3, [r3, #0] 800a684: b29b uxth r3, r3 800a686: 461d mov r5, r3 800a688: 4a79 ldr r2, [pc, #484] ; (800a870 ) 800a68a: 460b mov r3, r1 800a68c: 009b lsls r3, r3, #2 800a68e: 440b add r3, r1 800a690: 442b add r3, r5 800a692: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a696: 2303 movs r3, #3 800a698: 4621 mov r1, r4 800a69a: f7f9 fff3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800a69e: 79fb ldrb r3, [r7, #7] 800a6a0: 4a74 ldr r2, [pc, #464] ; (800a874 ) 800a6a2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a6a6: 79fb ldrb r3, [r7, #7] 800a6a8: 4a73 ldr r2, [pc, #460] ; (800a878 ) 800a6aa: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a6ae: 4b6c ldr r3, [pc, #432] ; (800a860 ) 800a6b0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800a6b4: b29b uxth r3, r3 800a6b6: 461d mov r5, r3 800a6b8: 79fb ldrb r3, [r7, #7] 800a6ba: 4a69 ldr r2, [pc, #420] ; (800a860 ) 800a6bc: 015b lsls r3, r3, #5 800a6be: 4413 add r3, r2 800a6c0: 3304 adds r3, #4 800a6c2: 881b ldrh r3, [r3, #0] 800a6c4: b29b uxth r3, r3 800a6c6: 461c mov r4, r3 800a6c8: 4a6c ldr r2, [pc, #432] ; (800a87c ) 800a6ca: 00eb lsls r3, r5, #3 800a6cc: 4423 add r3, r4 800a6ce: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a6d2: 2303 movs r3, #3 800a6d4: f7f9 ffd6 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 800a6d8: 79fb ldrb r3, [r7, #7] 800a6da: 4a69 ldr r2, [pc, #420] ; (800a880 ) 800a6dc: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a6e0: 79fb ldrb r3, [r7, #7] 800a6e2: 4a68 ldr r2, [pc, #416] ; (800a884 ) 800a6e4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a6e8: f107 0208 add.w r2, r7, #8 800a6ec: 2303 movs r3, #3 800a6ee: f7f9 ffc9 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 800a6f2: 79fb ldrb r3, [r7, #7] 800a6f4: 4a62 ldr r2, [pc, #392] ; (800a880 ) 800a6f6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a6fa: 332d adds r3, #45 ; 0x2d 800a6fc: b298 uxth r0, r3 800a6fe: 79fb ldrb r3, [r7, #7] 800a700: 4a60 ldr r2, [pc, #384] ; (800a884 ) 800a702: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800a706: 79fb ldrb r3, [r7, #7] 800a708: 4a55 ldr r2, [pc, #340] ; (800a860 ) 800a70a: 015b lsls r3, r3, #5 800a70c: 4413 add r3, r2 800a70e: 881b ldrh r3, [r3, #0] 800a710: b29b uxth r3, r3 800a712: 4619 mov r1, r3 800a714: 79fb ldrb r3, [r7, #7] 800a716: 4a52 ldr r2, [pc, #328] ; (800a860 ) 800a718: 015b lsls r3, r3, #5 800a71a: 4413 add r3, r2 800a71c: 3312 adds r3, #18 800a71e: 881b ldrh r3, [r3, #0] 800a720: b29b uxth r3, r3 800a722: 461d mov r5, r3 800a724: 4a58 ldr r2, [pc, #352] ; (800a888 ) 800a726: 460b mov r3, r1 800a728: 005b lsls r3, r3, #1 800a72a: 440b add r3, r1 800a72c: 442b add r3, r5 800a72e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a732: 2303 movs r3, #3 800a734: 4621 mov r1, r4 800a736: f7f9 ffa5 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800a73a: 79fb ldrb r3, [r7, #7] 800a73c: 4a53 ldr r2, [pc, #332] ; (800a88c ) 800a73e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a742: 79fb ldrb r3, [r7, #7] 800a744: 4a52 ldr r2, [pc, #328] ; (800a890 ) 800a746: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800a74a: 79fb ldrb r3, [r7, #7] 800a74c: 4a44 ldr r2, [pc, #272] ; (800a860 ) 800a74e: 015b lsls r3, r3, #5 800a750: 4413 add r3, r2 800a752: 3312 adds r3, #18 800a754: 881b ldrh r3, [r3, #0] 800a756: b29b uxth r3, r3 800a758: 461a mov r2, r3 800a75a: 494e ldr r1, [pc, #312] ; (800a894 ) 800a75c: 4613 mov r3, r2 800a75e: 009b lsls r3, r3, #2 800a760: 4413 add r3, r2 800a762: 009a lsls r2, r3, #2 800a764: 4413 add r3, r2 800a766: 6afa ldr r2, [r7, #44] ; 0x2c 800a768: 4413 add r3, r2 800a76a: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800a76e: 2303 movs r3, #3 800a770: 4621 mov r1, r4 800a772: f7f9 ff87 bl 8004684 } 800a776: f000 bf78 b.w 800b66a if(menupos == Kike) 800a77a: 4b47 ldr r3, [pc, #284] ; (800a898 ) 800a77c: 781b ldrb r3, [r3, #0] 800a77e: b2db uxtb r3, r3 800a780: 2b0a cmp r3, #10 800a782: f040 83b1 bne.w 800aee8 if(ACTIVE_CHANNEL == ch) 800a786: 79fa ldrb r2, [r7, #7] 800a788: 4b44 ldr r3, [pc, #272] ; (800a89c ) 800a78a: 681b ldr r3, [r3, #0] 800a78c: 429a cmp r2, r3 800a78e: f040 82fd bne.w 800ad8c LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800a792: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800a796: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800a79a: f7f9 fead bl 80044f8 if(!ipt) 800a79e: 6b3b ldr r3, [r7, #48] ; 0x30 800a7a0: 2b00 cmp r3, #0 800a7a2: d17f bne.n 800a8a4 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a7a4: 79fb ldrb r3, [r7, #7] 800a7a6: 4a36 ldr r2, [pc, #216] ; (800a880 ) 800a7a8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a7ac: 79fb ldrb r3, [r7, #7] 800a7ae: 4a35 ldr r2, [pc, #212] ; (800a884 ) 800a7b0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a7b4: 4a3a ldr r2, [pc, #232] ; (800a8a0 ) 800a7b6: 6a7b ldr r3, [r7, #36] ; 0x24 800a7b8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a7bc: 2303 movs r3, #3 800a7be: f7f9 ff61 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a7c2: 79fb ldrb r3, [r7, #7] 800a7c4: 4a2e ldr r2, [pc, #184] ; (800a880 ) 800a7c6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a7ca: 3307 adds r3, #7 800a7cc: b298 uxth r0, r3 800a7ce: 79fb ldrb r3, [r7, #7] 800a7d0: 4a2c ldr r2, [pc, #176] ; (800a884 ) 800a7d2: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a7d6: 4a32 ldr r2, [pc, #200] ; (800a8a0 ) 800a7d8: 6a3b ldr r3, [r7, #32] 800a7da: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a7de: 2303 movs r3, #3 800a7e0: f7f9 ff50 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a7e4: 79fb ldrb r3, [r7, #7] 800a7e6: 4a26 ldr r2, [pc, #152] ; (800a880 ) 800a7e8: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a7ec: 330e adds r3, #14 800a7ee: b298 uxth r0, r3 800a7f0: 79fb ldrb r3, [r7, #7] 800a7f2: 4a24 ldr r2, [pc, #144] ; (800a884 ) 800a7f4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a7f8: 4a29 ldr r2, [pc, #164] ; (800a8a0 ) 800a7fa: 69fb ldr r3, [r7, #28] 800a7fc: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a800: 2303 movs r3, #3 800a802: f7f9 ff3f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a806: 79fb ldrb r3, [r7, #7] 800a808: 4a1d ldr r2, [pc, #116] ; (800a880 ) 800a80a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a80e: 3315 adds r3, #21 800a810: b298 uxth r0, r3 800a812: 79fb ldrb r3, [r7, #7] 800a814: 4a1b ldr r2, [pc, #108] ; (800a884 ) 800a816: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a81a: 4a21 ldr r2, [pc, #132] ; (800a8a0 ) 800a81c: 69bb ldr r3, [r7, #24] 800a81e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a822: 2303 movs r3, #3 800a824: f7f9 ff2e bl 8004684 if(blk) 800a828: 683b ldr r3, [r7, #0] 800a82a: 2b00 cmp r3, #0 800a82c: f000 81e5 beq.w 800abfa BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800a830: 79fb ldrb r3, [r7, #7] 800a832: 4a13 ldr r2, [pc, #76] ; (800a880 ) 800a834: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a838: 331c adds r3, #28 800a83a: b298 uxth r0, r3 800a83c: 79fb ldrb r3, [r7, #7] 800a83e: 4a11 ldr r2, [pc, #68] ; (800a884 ) 800a840: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a844: 4a16 ldr r2, [pc, #88] ; (800a8a0 ) 800a846: 697b ldr r3, [r7, #20] 800a848: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a84c: 2303 movs r3, #3 800a84e: f7f9 ff19 bl 8004684 800a852: e1d2 b.n 800abfa 800a854: ffd8aa57 .word 0xffd8aa57 800a858: 08015534 .word 0x08015534 800a85c: 0801553c .word 0x0801553c 800a860: 2006b510 .word 0x2006b510 800a864: 20020030 .word 0x20020030 800a868: 08015544 .word 0x08015544 800a86c: 0801554c .word 0x0801554c 800a870: 20020040 .word 0x20020040 800a874: 08015554 .word 0x08015554 800a878: 0801555c .word 0x0801555c 800a87c: 20020068 .word 0x20020068 800a880: 08015564 .word 0x08015564 800a884: 0801556c .word 0x0801556c 800a888: 200200a8 .word 0x200200a8 800a88c: 08015574 .word 0x08015574 800a890: 0801557c .word 0x0801557c 800a894: 200200c0 .word 0x200200c0 800a898: 20020010 .word 0x20020010 800a89c: 2006b2d0 .word 0x2006b2d0 800a8a0: 200201ec .word 0x200201ec if(ipt == 1) 800a8a4: 6b3b ldr r3, [r7, #48] ; 0x30 800a8a6: 2b01 cmp r3, #1 800a8a8: d165 bne.n 800a976 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a8aa: 79fb ldrb r3, [r7, #7] 800a8ac: 4a9b ldr r2, [pc, #620] ; (800ab1c ) 800a8ae: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a8b2: 79fb ldrb r3, [r7, #7] 800a8b4: 4a9a ldr r2, [pc, #616] ; (800ab20 ) 800a8b6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a8ba: 4a9a ldr r2, [pc, #616] ; (800ab24 ) 800a8bc: 6a7b ldr r3, [r7, #36] ; 0x24 800a8be: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a8c2: 2303 movs r3, #3 800a8c4: f7f9 fede bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a8c8: 79fb ldrb r3, [r7, #7] 800a8ca: 4a94 ldr r2, [pc, #592] ; (800ab1c ) 800a8cc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a8d0: 3307 adds r3, #7 800a8d2: b298 uxth r0, r3 800a8d4: 79fb ldrb r3, [r7, #7] 800a8d6: 4a92 ldr r2, [pc, #584] ; (800ab20 ) 800a8d8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a8dc: 4a91 ldr r2, [pc, #580] ; (800ab24 ) 800a8de: 6a3b ldr r3, [r7, #32] 800a8e0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a8e4: 2303 movs r3, #3 800a8e6: f7f9 fecd bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a8ea: 79fb ldrb r3, [r7, #7] 800a8ec: 4a8b ldr r2, [pc, #556] ; (800ab1c ) 800a8ee: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a8f2: 330e adds r3, #14 800a8f4: b298 uxth r0, r3 800a8f6: 79fb ldrb r3, [r7, #7] 800a8f8: 4a89 ldr r2, [pc, #548] ; (800ab20 ) 800a8fa: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a8fe: 4a89 ldr r2, [pc, #548] ; (800ab24 ) 800a900: 69fb ldr r3, [r7, #28] 800a902: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a906: 2303 movs r3, #3 800a908: f7f9 febc bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a90c: 79fb ldrb r3, [r7, #7] 800a90e: 4a83 ldr r2, [pc, #524] ; (800ab1c ) 800a910: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a914: 3315 adds r3, #21 800a916: b298 uxth r0, r3 800a918: 79fb ldrb r3, [r7, #7] 800a91a: 4a81 ldr r2, [pc, #516] ; (800ab20 ) 800a91c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a920: 4a80 ldr r2, [pc, #512] ; (800ab24 ) 800a922: 69bb ldr r3, [r7, #24] 800a924: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a928: 2303 movs r3, #3 800a92a: f7f9 feab bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE); 800a92e: 79fb ldrb r3, [r7, #7] 800a930: 4a7a ldr r2, [pc, #488] ; (800ab1c ) 800a932: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a936: 331c adds r3, #28 800a938: b298 uxth r0, r3 800a93a: 79fb ldrb r3, [r7, #7] 800a93c: 4a78 ldr r2, [pc, #480] ; (800ab20 ) 800a93e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a942: 2303 movs r3, #3 800a944: 4a78 ldr r2, [pc, #480] ; (800ab28 ) 800a946: f7f9 fe9d bl 8004684 if(blk) 800a94a: 683b ldr r3, [r7, #0] 800a94c: 2b00 cmp r3, #0 800a94e: f000 8154 beq.w 800abfa BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800a952: 79fb ldrb r3, [r7, #7] 800a954: 4a71 ldr r2, [pc, #452] ; (800ab1c ) 800a956: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a95a: 3323 adds r3, #35 ; 0x23 800a95c: b298 uxth r0, r3 800a95e: 79fb ldrb r3, [r7, #7] 800a960: 4a6f ldr r2, [pc, #444] ; (800ab20 ) 800a962: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a966: 4a6f ldr r2, [pc, #444] ; (800ab24 ) 800a968: 697b ldr r3, [r7, #20] 800a96a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a96e: 2303 movs r3, #3 800a970: f7f9 fe88 bl 8004684 800a974: e141 b.n 800abfa if(ipt == 2) 800a976: 6b3b ldr r3, [r7, #48] ; 0x30 800a978: 2b02 cmp r3, #2 800a97a: d165 bne.n 800aa48 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800a97c: 79fb ldrb r3, [r7, #7] 800a97e: 4a67 ldr r2, [pc, #412] ; (800ab1c ) 800a980: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800a984: 79fb ldrb r3, [r7, #7] 800a986: 4a66 ldr r2, [pc, #408] ; (800ab20 ) 800a988: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a98c: 4a65 ldr r2, [pc, #404] ; (800ab24 ) 800a98e: 6a7b ldr r3, [r7, #36] ; 0x24 800a990: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a994: 2303 movs r3, #3 800a996: f7f9 fe75 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800a99a: 79fb ldrb r3, [r7, #7] 800a99c: 4a5f ldr r2, [pc, #380] ; (800ab1c ) 800a99e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a9a2: 3307 adds r3, #7 800a9a4: b298 uxth r0, r3 800a9a6: 79fb ldrb r3, [r7, #7] 800a9a8: 4a5d ldr r2, [pc, #372] ; (800ab20 ) 800a9aa: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a9ae: 4a5d ldr r2, [pc, #372] ; (800ab24 ) 800a9b0: 6a3b ldr r3, [r7, #32] 800a9b2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a9b6: 2303 movs r3, #3 800a9b8: f7f9 fe64 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800a9bc: 79fb ldrb r3, [r7, #7] 800a9be: 4a57 ldr r2, [pc, #348] ; (800ab1c ) 800a9c0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a9c4: 330e adds r3, #14 800a9c6: b298 uxth r0, r3 800a9c8: 79fb ldrb r3, [r7, #7] 800a9ca: 4a55 ldr r2, [pc, #340] ; (800ab20 ) 800a9cc: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a9d0: 4a54 ldr r2, [pc, #336] ; (800ab24 ) 800a9d2: 69fb ldr r3, [r7, #28] 800a9d4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800a9d8: 2303 movs r3, #3 800a9da: f7f9 fe53 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE); 800a9de: 79fb ldrb r3, [r7, #7] 800a9e0: 4a4e ldr r2, [pc, #312] ; (800ab1c ) 800a9e2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800a9e6: 3315 adds r3, #21 800a9e8: b298 uxth r0, r3 800a9ea: 79fb ldrb r3, [r7, #7] 800a9ec: 4a4c ldr r2, [pc, #304] ; (800ab20 ) 800a9ee: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800a9f2: 2303 movs r3, #3 800a9f4: 4a4c ldr r2, [pc, #304] ; (800ab28 ) 800a9f6: f7f9 fe45 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800a9fa: 79fb ldrb r3, [r7, #7] 800a9fc: 4a47 ldr r2, [pc, #284] ; (800ab1c ) 800a9fe: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800aa02: 331c adds r3, #28 800aa04: b298 uxth r0, r3 800aa06: 79fb ldrb r3, [r7, #7] 800aa08: 4a45 ldr r2, [pc, #276] ; (800ab20 ) 800aa0a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aa0e: 4a45 ldr r2, [pc, #276] ; (800ab24 ) 800aa10: 69bb ldr r3, [r7, #24] 800aa12: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800aa16: 2303 movs r3, #3 800aa18: f7f9 fe34 bl 8004684 if(blk) 800aa1c: 683b ldr r3, [r7, #0] 800aa1e: 2b00 cmp r3, #0 800aa20: f000 80eb beq.w 800abfa BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800aa24: 79fb ldrb r3, [r7, #7] 800aa26: 4a3d ldr r2, [pc, #244] ; (800ab1c ) 800aa28: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800aa2c: 3323 adds r3, #35 ; 0x23 800aa2e: b298 uxth r0, r3 800aa30: 79fb ldrb r3, [r7, #7] 800aa32: 4a3b ldr r2, [pc, #236] ; (800ab20 ) 800aa34: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aa38: 4a3a ldr r2, [pc, #232] ; (800ab24 ) 800aa3a: 697b ldr r3, [r7, #20] 800aa3c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800aa40: 2303 movs r3, #3 800aa42: f7f9 fe1f bl 8004684 800aa46: e0d8 b.n 800abfa if(ipt == 3) 800aa48: 6b3b ldr r3, [r7, #48] ; 0x30 800aa4a: 2b03 cmp r3, #3 800aa4c: d16e bne.n 800ab2c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800aa4e: 79fb ldrb r3, [r7, #7] 800aa50: 4a32 ldr r2, [pc, #200] ; (800ab1c ) 800aa52: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800aa56: 79fb ldrb r3, [r7, #7] 800aa58: 4a31 ldr r2, [pc, #196] ; (800ab20 ) 800aa5a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aa5e: 4a31 ldr r2, [pc, #196] ; (800ab24 ) 800aa60: 6a7b ldr r3, [r7, #36] ; 0x24 800aa62: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800aa66: 2303 movs r3, #3 800aa68: f7f9 fe0c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800aa6c: 79fb ldrb r3, [r7, #7] 800aa6e: 4a2b ldr r2, [pc, #172] ; (800ab1c ) 800aa70: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800aa74: 3307 adds r3, #7 800aa76: b298 uxth r0, r3 800aa78: 79fb ldrb r3, [r7, #7] 800aa7a: 4a29 ldr r2, [pc, #164] ; (800ab20 ) 800aa7c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aa80: 4a28 ldr r2, [pc, #160] ; (800ab24 ) 800aa82: 6a3b ldr r3, [r7, #32] 800aa84: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800aa88: 2303 movs r3, #3 800aa8a: f7f9 fdfb bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE); 800aa8e: 79fb ldrb r3, [r7, #7] 800aa90: 4a22 ldr r2, [pc, #136] ; (800ab1c ) 800aa92: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800aa96: 330e adds r3, #14 800aa98: b298 uxth r0, r3 800aa9a: 79fb ldrb r3, [r7, #7] 800aa9c: 4a20 ldr r2, [pc, #128] ; (800ab20 ) 800aa9e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aaa2: 2303 movs r3, #3 800aaa4: 4a20 ldr r2, [pc, #128] ; (800ab28 ) 800aaa6: f7f9 fded bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800aaaa: 79fb ldrb r3, [r7, #7] 800aaac: 4a1b ldr r2, [pc, #108] ; (800ab1c ) 800aaae: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800aab2: 3315 adds r3, #21 800aab4: b298 uxth r0, r3 800aab6: 79fb ldrb r3, [r7, #7] 800aab8: 4a19 ldr r2, [pc, #100] ; (800ab20 ) 800aaba: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aabe: 4a19 ldr r2, [pc, #100] ; (800ab24 ) 800aac0: 69fb ldr r3, [r7, #28] 800aac2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800aac6: 2303 movs r3, #3 800aac8: f7f9 fddc bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800aacc: 79fb ldrb r3, [r7, #7] 800aace: 4a13 ldr r2, [pc, #76] ; (800ab1c ) 800aad0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800aad4: 331c adds r3, #28 800aad6: b298 uxth r0, r3 800aad8: 79fb ldrb r3, [r7, #7] 800aada: 4a11 ldr r2, [pc, #68] ; (800ab20 ) 800aadc: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aae0: 4a10 ldr r2, [pc, #64] ; (800ab24 ) 800aae2: 69bb ldr r3, [r7, #24] 800aae4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800aae8: 2303 movs r3, #3 800aaea: f7f9 fdcb bl 8004684 if(blk) 800aaee: 683b ldr r3, [r7, #0] 800aaf0: 2b00 cmp r3, #0 800aaf2: f000 8082 beq.w 800abfa BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800aaf6: 79fb ldrb r3, [r7, #7] 800aaf8: 4a08 ldr r2, [pc, #32] ; (800ab1c ) 800aafa: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800aafe: 3323 adds r3, #35 ; 0x23 800ab00: b298 uxth r0, r3 800ab02: 79fb ldrb r3, [r7, #7] 800ab04: 4a06 ldr r2, [pc, #24] ; (800ab20 ) 800ab06: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ab0a: 4a06 ldr r2, [pc, #24] ; (800ab24 ) 800ab0c: 697b ldr r3, [r7, #20] 800ab0e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ab12: 2303 movs r3, #3 800ab14: f7f9 fdb6 bl 8004684 800ab18: e06f b.n 800abfa 800ab1a: bf00 nop 800ab1c: 08015564 .word 0x08015564 800ab20: 0801556c .word 0x0801556c 800ab24: 200201ec .word 0x200201ec 800ab28: 08012cb8 .word 0x08012cb8 if(ipt == 4) 800ab2c: 6b3b ldr r3, [r7, #48] ; 0x30 800ab2e: 2b04 cmp r3, #4 800ab30: d163 bne.n 800abfa BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800ab32: 79fb ldrb r3, [r7, #7] 800ab34: 4a82 ldr r2, [pc, #520] ; (800ad40 ) 800ab36: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ab3a: 79fb ldrb r3, [r7, #7] 800ab3c: 4a81 ldr r2, [pc, #516] ; (800ad44 ) 800ab3e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ab42: 4a81 ldr r2, [pc, #516] ; (800ad48 ) 800ab44: 6a7b ldr r3, [r7, #36] ; 0x24 800ab46: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ab4a: 2303 movs r3, #3 800ab4c: f7f9 fd9a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE); 800ab50: 79fb ldrb r3, [r7, #7] 800ab52: 4a7b ldr r2, [pc, #492] ; (800ad40 ) 800ab54: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ab58: 3307 adds r3, #7 800ab5a: b298 uxth r0, r3 800ab5c: 79fb ldrb r3, [r7, #7] 800ab5e: 4a79 ldr r2, [pc, #484] ; (800ad44 ) 800ab60: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ab64: 2303 movs r3, #3 800ab66: 4a79 ldr r2, [pc, #484] ; (800ad4c ) 800ab68: f7f9 fd8c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800ab6c: 79fb ldrb r3, [r7, #7] 800ab6e: 4a74 ldr r2, [pc, #464] ; (800ad40 ) 800ab70: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ab74: 330e adds r3, #14 800ab76: b298 uxth r0, r3 800ab78: 79fb ldrb r3, [r7, #7] 800ab7a: 4a72 ldr r2, [pc, #456] ; (800ad44 ) 800ab7c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ab80: 4a71 ldr r2, [pc, #452] ; (800ad48 ) 800ab82: 6a3b ldr r3, [r7, #32] 800ab84: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ab88: 2303 movs r3, #3 800ab8a: f7f9 fd7b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800ab8e: 79fb ldrb r3, [r7, #7] 800ab90: 4a6b ldr r2, [pc, #428] ; (800ad40 ) 800ab92: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ab96: 3315 adds r3, #21 800ab98: b298 uxth r0, r3 800ab9a: 79fb ldrb r3, [r7, #7] 800ab9c: 4a69 ldr r2, [pc, #420] ; (800ad44 ) 800ab9e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800aba2: 4a69 ldr r2, [pc, #420] ; (800ad48 ) 800aba4: 69fb ldr r3, [r7, #28] 800aba6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800abaa: 2303 movs r3, #3 800abac: f7f9 fd6a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800abb0: 79fb ldrb r3, [r7, #7] 800abb2: 4a63 ldr r2, [pc, #396] ; (800ad40 ) 800abb4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800abb8: 331c adds r3, #28 800abba: b298 uxth r0, r3 800abbc: 79fb ldrb r3, [r7, #7] 800abbe: 4a61 ldr r2, [pc, #388] ; (800ad44 ) 800abc0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800abc4: 4a60 ldr r2, [pc, #384] ; (800ad48 ) 800abc6: 69bb ldr r3, [r7, #24] 800abc8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800abcc: 2303 movs r3, #3 800abce: f7f9 fd59 bl 8004684 if(blk) 800abd2: 683b ldr r3, [r7, #0] 800abd4: 2b00 cmp r3, #0 800abd6: d010 beq.n 800abfa BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800abd8: 79fb ldrb r3, [r7, #7] 800abda: 4a59 ldr r2, [pc, #356] ; (800ad40 ) 800abdc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800abe0: 3323 adds r3, #35 ; 0x23 800abe2: b298 uxth r0, r3 800abe4: 79fb ldrb r3, [r7, #7] 800abe6: 4a57 ldr r2, [pc, #348] ; (800ad44 ) 800abe8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800abec: 4a56 ldr r2, [pc, #344] ; (800ad48 ) 800abee: 697b ldr r3, [r7, #20] 800abf0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800abf4: 2303 movs r3, #3 800abf6: f7f9 fd45 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800abfa: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800abfe: 4854 ldr r0, [pc, #336] ; (800ad50 ) 800ac00: f7f9 fc7a bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800ac04: 79fb ldrb r3, [r7, #7] 800ac06: 4a53 ldr r2, [pc, #332] ; (800ad54 ) 800ac08: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ac0c: 79fb ldrb r3, [r7, #7] 800ac0e: 4a52 ldr r2, [pc, #328] ; (800ad58 ) 800ac10: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ac14: 4b51 ldr r3, [pc, #324] ; (800ad5c ) 800ac16: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ac1a: b29b uxth r3, r3 800ac1c: 461d mov r5, r3 800ac1e: 79fb ldrb r3, [r7, #7] 800ac20: 4a4e ldr r2, [pc, #312] ; (800ad5c ) 800ac22: 015b lsls r3, r3, #5 800ac24: 4413 add r3, r2 800ac26: 881b ldrh r3, [r3, #0] 800ac28: b29b uxth r3, r3 800ac2a: 461c mov r4, r3 800ac2c: 4a4c ldr r2, [pc, #304] ; (800ad60 ) 800ac2e: 006b lsls r3, r5, #1 800ac30: 4423 add r3, r4 800ac32: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ac36: 2303 movs r3, #3 800ac38: f7f9 fd24 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800ac3c: 79fb ldrb r3, [r7, #7] 800ac3e: 4a49 ldr r2, [pc, #292] ; (800ad64 ) 800ac40: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ac44: 79fb ldrb r3, [r7, #7] 800ac46: 4a48 ldr r2, [pc, #288] ; (800ad68 ) 800ac48: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ac4c: 4b43 ldr r3, [pc, #268] ; (800ad5c ) 800ac4e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ac52: b29b uxth r3, r3 800ac54: 4619 mov r1, r3 800ac56: 79fb ldrb r3, [r7, #7] 800ac58: 4a40 ldr r2, [pc, #256] ; (800ad5c ) 800ac5a: 015b lsls r3, r3, #5 800ac5c: 4413 add r3, r2 800ac5e: 3302 adds r3, #2 800ac60: 881b ldrh r3, [r3, #0] 800ac62: b29b uxth r3, r3 800ac64: 461d mov r5, r3 800ac66: 4a41 ldr r2, [pc, #260] ; (800ad6c ) 800ac68: 460b mov r3, r1 800ac6a: 009b lsls r3, r3, #2 800ac6c: 440b add r3, r1 800ac6e: 442b add r3, r5 800ac70: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ac74: 2303 movs r3, #3 800ac76: 4621 mov r1, r4 800ac78: f7f9 fd04 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800ac7c: 79fb ldrb r3, [r7, #7] 800ac7e: 4a3c ldr r2, [pc, #240] ; (800ad70 ) 800ac80: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ac84: 79fb ldrb r3, [r7, #7] 800ac86: 4a3b ldr r2, [pc, #236] ; (800ad74 ) 800ac88: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ac8c: 4b33 ldr r3, [pc, #204] ; (800ad5c ) 800ac8e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ac92: b29b uxth r3, r3 800ac94: 461d mov r5, r3 800ac96: 79fb ldrb r3, [r7, #7] 800ac98: 4a30 ldr r2, [pc, #192] ; (800ad5c ) 800ac9a: 015b lsls r3, r3, #5 800ac9c: 4413 add r3, r2 800ac9e: 3304 adds r3, #4 800aca0: 881b ldrh r3, [r3, #0] 800aca2: b29b uxth r3, r3 800aca4: 461c mov r4, r3 800aca6: 4a34 ldr r2, [pc, #208] ; (800ad78 ) 800aca8: 00eb lsls r3, r5, #3 800acaa: 4423 add r3, r4 800acac: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800acb0: 2303 movs r3, #3 800acb2: f7f9 fce7 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 800acb6: 79fb ldrb r3, [r7, #7] 800acb8: 4a21 ldr r2, [pc, #132] ; (800ad40 ) 800acba: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800acbe: 332d adds r3, #45 ; 0x2d 800acc0: b298 uxth r0, r3 800acc2: 79fb ldrb r3, [r7, #7] 800acc4: 4a1f ldr r2, [pc, #124] ; (800ad44 ) 800acc6: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800acca: 79fb ldrb r3, [r7, #7] 800accc: 4a23 ldr r2, [pc, #140] ; (800ad5c ) 800acce: 015b lsls r3, r3, #5 800acd0: 4413 add r3, r2 800acd2: 881b ldrh r3, [r3, #0] 800acd4: b29b uxth r3, r3 800acd6: 4619 mov r1, r3 800acd8: 79fb ldrb r3, [r7, #7] 800acda: 4a20 ldr r2, [pc, #128] ; (800ad5c ) 800acdc: 015b lsls r3, r3, #5 800acde: 4413 add r3, r2 800ace0: 3312 adds r3, #18 800ace2: 881b ldrh r3, [r3, #0] 800ace4: b29b uxth r3, r3 800ace6: 461d mov r5, r3 800ace8: 4a24 ldr r2, [pc, #144] ; (800ad7c ) 800acea: 460b mov r3, r1 800acec: 005b lsls r3, r3, #1 800acee: 440b add r3, r1 800acf0: 442b add r3, r5 800acf2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800acf6: 2303 movs r3, #3 800acf8: 4621 mov r1, r4 800acfa: f7f9 fcc3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800acfe: 79fb ldrb r3, [r7, #7] 800ad00: 4a1f ldr r2, [pc, #124] ; (800ad80 ) 800ad02: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ad06: 79fb ldrb r3, [r7, #7] 800ad08: 4a1e ldr r2, [pc, #120] ; (800ad84 ) 800ad0a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ad0e: 79fb ldrb r3, [r7, #7] 800ad10: 4a12 ldr r2, [pc, #72] ; (800ad5c ) 800ad12: 015b lsls r3, r3, #5 800ad14: 4413 add r3, r2 800ad16: 3312 adds r3, #18 800ad18: 881b ldrh r3, [r3, #0] 800ad1a: b29b uxth r3, r3 800ad1c: 461a mov r2, r3 800ad1e: 491a ldr r1, [pc, #104] ; (800ad88 ) 800ad20: 4613 mov r3, r2 800ad22: 009b lsls r3, r3, #2 800ad24: 4413 add r3, r2 800ad26: 009a lsls r2, r3, #2 800ad28: 4413 add r3, r2 800ad2a: 6afa ldr r2, [r7, #44] ; 0x2c 800ad2c: 4413 add r3, r2 800ad2e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800ad32: 2303 movs r3, #3 800ad34: 4621 mov r1, r4 800ad36: f7f9 fca5 bl 8004684 } 800ad3a: f000 bc96 b.w 800b66a 800ad3e: bf00 nop 800ad40: 08015564 .word 0x08015564 800ad44: 0801556c .word 0x0801556c 800ad48: 200201ec .word 0x200201ec 800ad4c: 08012cb8 .word 0x08012cb8 800ad50: ffd8aa57 .word 0xffd8aa57 800ad54: 08015534 .word 0x08015534 800ad58: 0801553c .word 0x0801553c 800ad5c: 2006b510 .word 0x2006b510 800ad60: 20020030 .word 0x20020030 800ad64: 08015544 .word 0x08015544 800ad68: 0801554c .word 0x0801554c 800ad6c: 20020040 .word 0x20020040 800ad70: 08015554 .word 0x08015554 800ad74: 0801555c .word 0x0801555c 800ad78: 20020068 .word 0x20020068 800ad7c: 200200a8 .word 0x200200a8 800ad80: 08015574 .word 0x08015574 800ad84: 0801557c .word 0x0801557c 800ad88: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800ad8c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800ad90: 4893 ldr r0, [pc, #588] ; (800afe0 ) 800ad92: f7f9 fbb1 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800ad96: 79fb ldrb r3, [r7, #7] 800ad98: 4a92 ldr r2, [pc, #584] ; (800afe4 ) 800ad9a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ad9e: 79fb ldrb r3, [r7, #7] 800ada0: 4a91 ldr r2, [pc, #580] ; (800afe8 ) 800ada2: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ada6: 4b91 ldr r3, [pc, #580] ; (800afec ) 800ada8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800adac: b29b uxth r3, r3 800adae: 461d mov r5, r3 800adb0: 79fb ldrb r3, [r7, #7] 800adb2: 4a8e ldr r2, [pc, #568] ; (800afec ) 800adb4: 015b lsls r3, r3, #5 800adb6: 4413 add r3, r2 800adb8: 881b ldrh r3, [r3, #0] 800adba: b29b uxth r3, r3 800adbc: 461c mov r4, r3 800adbe: 4a8c ldr r2, [pc, #560] ; (800aff0 ) 800adc0: 006b lsls r3, r5, #1 800adc2: 4423 add r3, r4 800adc4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800adc8: 2303 movs r3, #3 800adca: f7f9 fc5b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800adce: 79fb ldrb r3, [r7, #7] 800add0: 4a88 ldr r2, [pc, #544] ; (800aff4 ) 800add2: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800add6: 79fb ldrb r3, [r7, #7] 800add8: 4a87 ldr r2, [pc, #540] ; (800aff8 ) 800adda: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800adde: 4b83 ldr r3, [pc, #524] ; (800afec ) 800ade0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ade4: b29b uxth r3, r3 800ade6: 4619 mov r1, r3 800ade8: 79fb ldrb r3, [r7, #7] 800adea: 4a80 ldr r2, [pc, #512] ; (800afec ) 800adec: 015b lsls r3, r3, #5 800adee: 4413 add r3, r2 800adf0: 3302 adds r3, #2 800adf2: 881b ldrh r3, [r3, #0] 800adf4: b29b uxth r3, r3 800adf6: 461d mov r5, r3 800adf8: 4a80 ldr r2, [pc, #512] ; (800affc ) 800adfa: 460b mov r3, r1 800adfc: 009b lsls r3, r3, #2 800adfe: 440b add r3, r1 800ae00: 442b add r3, r5 800ae02: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ae06: 2303 movs r3, #3 800ae08: 4621 mov r1, r4 800ae0a: f7f9 fc3b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800ae0e: 79fb ldrb r3, [r7, #7] 800ae10: 4a7b ldr r2, [pc, #492] ; (800b000 ) 800ae12: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ae16: 79fb ldrb r3, [r7, #7] 800ae18: 4a7a ldr r2, [pc, #488] ; (800b004 ) 800ae1a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ae1e: 4b73 ldr r3, [pc, #460] ; (800afec ) 800ae20: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800ae24: b29b uxth r3, r3 800ae26: 461d mov r5, r3 800ae28: 79fb ldrb r3, [r7, #7] 800ae2a: 4a70 ldr r2, [pc, #448] ; (800afec ) 800ae2c: 015b lsls r3, r3, #5 800ae2e: 4413 add r3, r2 800ae30: 3304 adds r3, #4 800ae32: 881b ldrh r3, [r3, #0] 800ae34: b29b uxth r3, r3 800ae36: 461c mov r4, r3 800ae38: 4a73 ldr r2, [pc, #460] ; (800b008 ) 800ae3a: 00eb lsls r3, r5, #3 800ae3c: 4423 add r3, r4 800ae3e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800ae42: 2303 movs r3, #3 800ae44: f7f9 fc1e bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 800ae48: 79fb ldrb r3, [r7, #7] 800ae4a: 4a70 ldr r2, [pc, #448] ; (800b00c ) 800ae4c: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800ae50: 79fb ldrb r3, [r7, #7] 800ae52: 4a6f ldr r2, [pc, #444] ; (800b010 ) 800ae54: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800ae58: f107 0208 add.w r2, r7, #8 800ae5c: 2303 movs r3, #3 800ae5e: f7f9 fc11 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 800ae62: 79fb ldrb r3, [r7, #7] 800ae64: 4a69 ldr r2, [pc, #420] ; (800b00c ) 800ae66: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800ae6a: 332d adds r3, #45 ; 0x2d 800ae6c: b298 uxth r0, r3 800ae6e: 79fb ldrb r3, [r7, #7] 800ae70: 4a67 ldr r2, [pc, #412] ; (800b010 ) 800ae72: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800ae76: 79fb ldrb r3, [r7, #7] 800ae78: 4a5c ldr r2, [pc, #368] ; (800afec ) 800ae7a: 015b lsls r3, r3, #5 800ae7c: 4413 add r3, r2 800ae7e: 881b ldrh r3, [r3, #0] 800ae80: b29b uxth r3, r3 800ae82: 4619 mov r1, r3 800ae84: 79fb ldrb r3, [r7, #7] 800ae86: 4a59 ldr r2, [pc, #356] ; (800afec ) 800ae88: 015b lsls r3, r3, #5 800ae8a: 4413 add r3, r2 800ae8c: 3312 adds r3, #18 800ae8e: 881b ldrh r3, [r3, #0] 800ae90: b29b uxth r3, r3 800ae92: 461d mov r5, r3 800ae94: 4a5f ldr r2, [pc, #380] ; (800b014 ) 800ae96: 460b mov r3, r1 800ae98: 005b lsls r3, r3, #1 800ae9a: 440b add r3, r1 800ae9c: 442b add r3, r5 800ae9e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800aea2: 2303 movs r3, #3 800aea4: 4621 mov r1, r4 800aea6: f7f9 fbed bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800aeaa: 79fb ldrb r3, [r7, #7] 800aeac: 4a5a ldr r2, [pc, #360] ; (800b018 ) 800aeae: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800aeb2: 79fb ldrb r3, [r7, #7] 800aeb4: 4a59 ldr r2, [pc, #356] ; (800b01c ) 800aeb6: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800aeba: 79fb ldrb r3, [r7, #7] 800aebc: 4a4b ldr r2, [pc, #300] ; (800afec ) 800aebe: 015b lsls r3, r3, #5 800aec0: 4413 add r3, r2 800aec2: 3312 adds r3, #18 800aec4: 881b ldrh r3, [r3, #0] 800aec6: b29b uxth r3, r3 800aec8: 461a mov r2, r3 800aeca: 4955 ldr r1, [pc, #340] ; (800b020 ) 800aecc: 4613 mov r3, r2 800aece: 009b lsls r3, r3, #2 800aed0: 4413 add r3, r2 800aed2: 009a lsls r2, r3, #2 800aed4: 4413 add r3, r2 800aed6: 6afa ldr r2, [r7, #44] ; 0x2c 800aed8: 4413 add r3, r2 800aeda: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800aede: 2303 movs r3, #3 800aee0: 4621 mov r1, r4 800aee2: f7f9 fbcf bl 8004684 } 800aee6: e3c0 b.n 800b66a if(menupos == Kpt) 800aee8: 4b4e ldr r3, [pc, #312] ; (800b024 ) 800aeea: 781b ldrb r3, [r3, #0] 800aeec: b2db uxtb r3, r3 800aeee: 2b0b cmp r3, #11 800aef0: f040 83bb bne.w 800b66a if(ACTIVE_CHANNEL == ch) 800aef4: 79fa ldrb r2, [r7, #7] 800aef6: 4b4c ldr r3, [pc, #304] ; (800b028 ) 800aef8: 681b ldr r3, [r3, #0] 800aefa: 429a cmp r2, r3 800aefc: f040 8308 bne.w 800b510 LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK); 800af00: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800af04: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00 800af08: f7f9 faf6 bl 80044f8 if(!ipt) 800af0c: 6b3b ldr r3, [r7, #48] ; 0x30 800af0e: 2b00 cmp r3, #0 800af10: f040 8090 bne.w 800b034 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800af14: 79fb ldrb r3, [r7, #7] 800af16: 4a3d ldr r2, [pc, #244] ; (800b00c ) 800af18: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800af1c: 79fb ldrb r3, [r7, #7] 800af1e: 4a3c ldr r2, [pc, #240] ; (800b010 ) 800af20: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800af24: 4a41 ldr r2, [pc, #260] ; (800b02c ) 800af26: 6a7b ldr r3, [r7, #36] ; 0x24 800af28: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800af2c: 2303 movs r3, #3 800af2e: f7f9 fba9 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800af32: 79fb ldrb r3, [r7, #7] 800af34: 4a35 ldr r2, [pc, #212] ; (800b00c ) 800af36: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800af3a: 3307 adds r3, #7 800af3c: b298 uxth r0, r3 800af3e: 79fb ldrb r3, [r7, #7] 800af40: 4a33 ldr r2, [pc, #204] ; (800b010 ) 800af42: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800af46: 4a39 ldr r2, [pc, #228] ; (800b02c ) 800af48: 6a3b ldr r3, [r7, #32] 800af4a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800af4e: 2303 movs r3, #3 800af50: f7f9 fb98 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800af54: 79fb ldrb r3, [r7, #7] 800af56: 4a2d ldr r2, [pc, #180] ; (800b00c ) 800af58: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800af5c: 330e adds r3, #14 800af5e: b298 uxth r0, r3 800af60: 79fb ldrb r3, [r7, #7] 800af62: 4a2b ldr r2, [pc, #172] ; (800b010 ) 800af64: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800af68: 4a30 ldr r2, [pc, #192] ; (800b02c ) 800af6a: 69fb ldr r3, [r7, #28] 800af6c: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800af70: 2303 movs r3, #3 800af72: f7f9 fb87 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800af76: 79fb ldrb r3, [r7, #7] 800af78: 4a24 ldr r2, [pc, #144] ; (800b00c ) 800af7a: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800af7e: 3315 adds r3, #21 800af80: b298 uxth r0, r3 800af82: 79fb ldrb r3, [r7, #7] 800af84: 4a22 ldr r2, [pc, #136] ; (800b010 ) 800af86: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800af8a: 4a28 ldr r2, [pc, #160] ; (800b02c ) 800af8c: 69bb ldr r3, [r7, #24] 800af8e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800af92: 2303 movs r3, #3 800af94: f7f9 fb76 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800af98: 79fb ldrb r3, [r7, #7] 800af9a: 4a1c ldr r2, [pc, #112] ; (800b00c ) 800af9c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800afa0: 331c adds r3, #28 800afa2: b298 uxth r0, r3 800afa4: 79fb ldrb r3, [r7, #7] 800afa6: 4a1a ldr r2, [pc, #104] ; (800b010 ) 800afa8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800afac: 4a1f ldr r2, [pc, #124] ; (800b02c ) 800afae: 697b ldr r3, [r7, #20] 800afb0: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800afb4: 2303 movs r3, #3 800afb6: f7f9 fb65 bl 8004684 if(blk) 800afba: 683b ldr r3, [r7, #0] 800afbc: 2b00 cmp r3, #0 800afbe: f000 81e0 beq.w 800b382 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], ".", LEFT_MODE); 800afc2: 79fb ldrb r3, [r7, #7] 800afc4: 4a11 ldr r2, [pc, #68] ; (800b00c ) 800afc6: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800afca: 3323 adds r3, #35 ; 0x23 800afcc: b298 uxth r0, r3 800afce: 79fb ldrb r3, [r7, #7] 800afd0: 4a0f ldr r2, [pc, #60] ; (800b010 ) 800afd2: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800afd6: 2303 movs r3, #3 800afd8: 4a15 ldr r2, [pc, #84] ; (800b030 ) 800afda: f7f9 fb53 bl 8004684 800afde: e1d0 b.n 800b382 800afe0: ffd8aa57 .word 0xffd8aa57 800afe4: 08015534 .word 0x08015534 800afe8: 0801553c .word 0x0801553c 800afec: 2006b510 .word 0x2006b510 800aff0: 20020030 .word 0x20020030 800aff4: 08015544 .word 0x08015544 800aff8: 0801554c .word 0x0801554c 800affc: 20020040 .word 0x20020040 800b000: 08015554 .word 0x08015554 800b004: 0801555c .word 0x0801555c 800b008: 20020068 .word 0x20020068 800b00c: 08015564 .word 0x08015564 800b010: 0801556c .word 0x0801556c 800b014: 200200a8 .word 0x200200a8 800b018: 08015574 .word 0x08015574 800b01c: 0801557c .word 0x0801557c 800b020: 200200c0 .word 0x200200c0 800b024: 20020010 .word 0x20020010 800b028: 2006b2d0 .word 0x2006b2d0 800b02c: 200201ec .word 0x200201ec 800b030: 08012cb8 .word 0x08012cb8 if(ipt == 1) 800b034: 6b3b ldr r3, [r7, #48] ; 0x30 800b036: 2b01 cmp r3, #1 800b038: d164 bne.n 800b104 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800b03a: 79fb ldrb r3, [r7, #7] 800b03c: 4a99 ldr r2, [pc, #612] ; (800b2a4 ) 800b03e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b042: 79fb ldrb r3, [r7, #7] 800b044: 4a98 ldr r2, [pc, #608] ; (800b2a8 ) 800b046: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b04a: 4a98 ldr r2, [pc, #608] ; (800b2ac ) 800b04c: 6a7b ldr r3, [r7, #36] ; 0x24 800b04e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b052: 2303 movs r3, #3 800b054: f7f9 fb16 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800b058: 79fb ldrb r3, [r7, #7] 800b05a: 4a92 ldr r2, [pc, #584] ; (800b2a4 ) 800b05c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b060: 3307 adds r3, #7 800b062: b298 uxth r0, r3 800b064: 79fb ldrb r3, [r7, #7] 800b066: 4a90 ldr r2, [pc, #576] ; (800b2a8 ) 800b068: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b06c: 4a8f ldr r2, [pc, #572] ; (800b2ac ) 800b06e: 6a3b ldr r3, [r7, #32] 800b070: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b074: 2303 movs r3, #3 800b076: f7f9 fb05 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800b07a: 79fb ldrb r3, [r7, #7] 800b07c: 4a89 ldr r2, [pc, #548] ; (800b2a4 ) 800b07e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b082: 330e adds r3, #14 800b084: b298 uxth r0, r3 800b086: 79fb ldrb r3, [r7, #7] 800b088: 4a87 ldr r2, [pc, #540] ; (800b2a8 ) 800b08a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b08e: 4a87 ldr r2, [pc, #540] ; (800b2ac ) 800b090: 69fb ldr r3, [r7, #28] 800b092: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b096: 2303 movs r3, #3 800b098: f7f9 faf4 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800b09c: 79fb ldrb r3, [r7, #7] 800b09e: 4a81 ldr r2, [pc, #516] ; (800b2a4 ) 800b0a0: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b0a4: 3315 adds r3, #21 800b0a6: b298 uxth r0, r3 800b0a8: 79fb ldrb r3, [r7, #7] 800b0aa: 4a7f ldr r2, [pc, #508] ; (800b2a8 ) 800b0ac: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b0b0: 4a7e ldr r2, [pc, #504] ; (800b2ac ) 800b0b2: 69bb ldr r3, [r7, #24] 800b0b4: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b0b8: 2303 movs r3, #3 800b0ba: f7f9 fae3 bl 8004684 if(blk) 800b0be: 683b ldr r3, [r7, #0] 800b0c0: 2b00 cmp r3, #0 800b0c2: d00d beq.n 800b0e0 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], ".", LEFT_MODE); 800b0c4: 79fb ldrb r3, [r7, #7] 800b0c6: 4a77 ldr r2, [pc, #476] ; (800b2a4 ) 800b0c8: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b0cc: 331c adds r3, #28 800b0ce: b298 uxth r0, r3 800b0d0: 79fb ldrb r3, [r7, #7] 800b0d2: 4a75 ldr r2, [pc, #468] ; (800b2a8 ) 800b0d4: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b0d8: 2303 movs r3, #3 800b0da: 4a75 ldr r2, [pc, #468] ; (800b2b0 ) 800b0dc: f7f9 fad2 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800b0e0: 79fb ldrb r3, [r7, #7] 800b0e2: 4a70 ldr r2, [pc, #448] ; (800b2a4 ) 800b0e4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b0e8: 3323 adds r3, #35 ; 0x23 800b0ea: b298 uxth r0, r3 800b0ec: 79fb ldrb r3, [r7, #7] 800b0ee: 4a6e ldr r2, [pc, #440] ; (800b2a8 ) 800b0f0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b0f4: 4a6d ldr r2, [pc, #436] ; (800b2ac ) 800b0f6: 697b ldr r3, [r7, #20] 800b0f8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b0fc: 2303 movs r3, #3 800b0fe: f7f9 fac1 bl 8004684 800b102: e13e b.n 800b382 if(ipt == 2) 800b104: 6b3b ldr r3, [r7, #48] ; 0x30 800b106: 2b02 cmp r3, #2 800b108: d164 bne.n 800b1d4 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800b10a: 79fb ldrb r3, [r7, #7] 800b10c: 4a65 ldr r2, [pc, #404] ; (800b2a4 ) 800b10e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b112: 79fb ldrb r3, [r7, #7] 800b114: 4a64 ldr r2, [pc, #400] ; (800b2a8 ) 800b116: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b11a: 4a64 ldr r2, [pc, #400] ; (800b2ac ) 800b11c: 6a7b ldr r3, [r7, #36] ; 0x24 800b11e: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b122: 2303 movs r3, #3 800b124: f7f9 faae bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800b128: 79fb ldrb r3, [r7, #7] 800b12a: 4a5e ldr r2, [pc, #376] ; (800b2a4 ) 800b12c: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b130: 3307 adds r3, #7 800b132: b298 uxth r0, r3 800b134: 79fb ldrb r3, [r7, #7] 800b136: 4a5c ldr r2, [pc, #368] ; (800b2a8 ) 800b138: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b13c: 4a5b ldr r2, [pc, #364] ; (800b2ac ) 800b13e: 6a3b ldr r3, [r7, #32] 800b140: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b144: 2303 movs r3, #3 800b146: f7f9 fa9d bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800b14a: 79fb ldrb r3, [r7, #7] 800b14c: 4a55 ldr r2, [pc, #340] ; (800b2a4 ) 800b14e: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b152: 330e adds r3, #14 800b154: b298 uxth r0, r3 800b156: 79fb ldrb r3, [r7, #7] 800b158: 4a53 ldr r2, [pc, #332] ; (800b2a8 ) 800b15a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b15e: 4a53 ldr r2, [pc, #332] ; (800b2ac ) 800b160: 69fb ldr r3, [r7, #28] 800b162: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b166: 2303 movs r3, #3 800b168: f7f9 fa8c bl 8004684 if(blk) 800b16c: 683b ldr r3, [r7, #0] 800b16e: 2b00 cmp r3, #0 800b170: d00d beq.n 800b18e BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], ".", LEFT_MODE); 800b172: 79fb ldrb r3, [r7, #7] 800b174: 4a4b ldr r2, [pc, #300] ; (800b2a4 ) 800b176: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b17a: 3315 adds r3, #21 800b17c: b298 uxth r0, r3 800b17e: 79fb ldrb r3, [r7, #7] 800b180: 4a49 ldr r2, [pc, #292] ; (800b2a8 ) 800b182: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b186: 2303 movs r3, #3 800b188: 4a49 ldr r2, [pc, #292] ; (800b2b0 ) 800b18a: f7f9 fa7b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800b18e: 79fb ldrb r3, [r7, #7] 800b190: 4a44 ldr r2, [pc, #272] ; (800b2a4 ) 800b192: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b196: 331c adds r3, #28 800b198: b298 uxth r0, r3 800b19a: 79fb ldrb r3, [r7, #7] 800b19c: 4a42 ldr r2, [pc, #264] ; (800b2a8 ) 800b19e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b1a2: 4a42 ldr r2, [pc, #264] ; (800b2ac ) 800b1a4: 69bb ldr r3, [r7, #24] 800b1a6: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b1aa: 2303 movs r3, #3 800b1ac: f7f9 fa6a bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800b1b0: 79fb ldrb r3, [r7, #7] 800b1b2: 4a3c ldr r2, [pc, #240] ; (800b2a4 ) 800b1b4: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b1b8: 3323 adds r3, #35 ; 0x23 800b1ba: b298 uxth r0, r3 800b1bc: 79fb ldrb r3, [r7, #7] 800b1be: 4a3a ldr r2, [pc, #232] ; (800b2a8 ) 800b1c0: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b1c4: 4a39 ldr r2, [pc, #228] ; (800b2ac ) 800b1c6: 697b ldr r3, [r7, #20] 800b1c8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b1cc: 2303 movs r3, #3 800b1ce: f7f9 fa59 bl 8004684 800b1d2: e0d6 b.n 800b382 if(ipt == 3) 800b1d4: 6b3b ldr r3, [r7, #48] ; 0x30 800b1d6: 2b03 cmp r3, #3 800b1d8: d16c bne.n 800b2b4 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800b1da: 79fb ldrb r3, [r7, #7] 800b1dc: 4a31 ldr r2, [pc, #196] ; (800b2a4 ) 800b1de: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b1e2: 79fb ldrb r3, [r7, #7] 800b1e4: 4a30 ldr r2, [pc, #192] ; (800b2a8 ) 800b1e6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b1ea: 4a30 ldr r2, [pc, #192] ; (800b2ac ) 800b1ec: 6a7b ldr r3, [r7, #36] ; 0x24 800b1ee: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b1f2: 2303 movs r3, #3 800b1f4: f7f9 fa46 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800b1f8: 79fb ldrb r3, [r7, #7] 800b1fa: 4a2a ldr r2, [pc, #168] ; (800b2a4 ) 800b1fc: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b200: 3307 adds r3, #7 800b202: b298 uxth r0, r3 800b204: 79fb ldrb r3, [r7, #7] 800b206: 4a28 ldr r2, [pc, #160] ; (800b2a8 ) 800b208: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b20c: 4a27 ldr r2, [pc, #156] ; (800b2ac ) 800b20e: 6a3b ldr r3, [r7, #32] 800b210: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b214: 2303 movs r3, #3 800b216: f7f9 fa35 bl 8004684 if(blk) 800b21a: 683b ldr r3, [r7, #0] 800b21c: 2b00 cmp r3, #0 800b21e: d00d beq.n 800b23c BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], ".", LEFT_MODE); 800b220: 79fb ldrb r3, [r7, #7] 800b222: 4a20 ldr r2, [pc, #128] ; (800b2a4 ) 800b224: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b228: 330e adds r3, #14 800b22a: b298 uxth r0, r3 800b22c: 79fb ldrb r3, [r7, #7] 800b22e: 4a1e ldr r2, [pc, #120] ; (800b2a8 ) 800b230: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b234: 2303 movs r3, #3 800b236: 4a1e ldr r2, [pc, #120] ; (800b2b0 ) 800b238: f7f9 fa24 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800b23c: 79fb ldrb r3, [r7, #7] 800b23e: 4a19 ldr r2, [pc, #100] ; (800b2a4 ) 800b240: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b244: 3315 adds r3, #21 800b246: b298 uxth r0, r3 800b248: 79fb ldrb r3, [r7, #7] 800b24a: 4a17 ldr r2, [pc, #92] ; (800b2a8 ) 800b24c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b250: 4a16 ldr r2, [pc, #88] ; (800b2ac ) 800b252: 69fb ldr r3, [r7, #28] 800b254: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b258: 2303 movs r3, #3 800b25a: f7f9 fa13 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800b25e: 79fb ldrb r3, [r7, #7] 800b260: 4a10 ldr r2, [pc, #64] ; (800b2a4 ) 800b262: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b266: 331c adds r3, #28 800b268: b298 uxth r0, r3 800b26a: 79fb ldrb r3, [r7, #7] 800b26c: 4a0e ldr r2, [pc, #56] ; (800b2a8 ) 800b26e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b272: 4a0e ldr r2, [pc, #56] ; (800b2ac ) 800b274: 69bb ldr r3, [r7, #24] 800b276: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b27a: 2303 movs r3, #3 800b27c: f7f9 fa02 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800b280: 79fb ldrb r3, [r7, #7] 800b282: 4a08 ldr r2, [pc, #32] ; (800b2a4 ) 800b284: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b288: 3323 adds r3, #35 ; 0x23 800b28a: b298 uxth r0, r3 800b28c: 79fb ldrb r3, [r7, #7] 800b28e: 4a06 ldr r2, [pc, #24] ; (800b2a8 ) 800b290: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b294: 4a05 ldr r2, [pc, #20] ; (800b2ac ) 800b296: 697b ldr r3, [r7, #20] 800b298: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b29c: 2303 movs r3, #3 800b29e: f7f9 f9f1 bl 8004684 800b2a2: e06e b.n 800b382 800b2a4: 08015564 .word 0x08015564 800b2a8: 0801556c .word 0x0801556c 800b2ac: 200201ec .word 0x200201ec 800b2b0: 08012cb8 .word 0x08012cb8 if(ipt == 4) 800b2b4: 6b3b ldr r3, [r7, #48] ; 0x30 800b2b6: 2b04 cmp r3, #4 800b2b8: d163 bne.n 800b382 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], (char *) pNUMS[ikdt], LEFT_MODE); 800b2ba: 79fb ldrb r3, [r7, #7] 800b2bc: 4a81 ldr r2, [pc, #516] ; (800b4c4 ) 800b2be: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b2c2: 79fb ldrb r3, [r7, #7] 800b2c4: 4a80 ldr r2, [pc, #512] ; (800b4c8 ) 800b2c6: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b2ca: 4a80 ldr r2, [pc, #512] ; (800b4cc ) 800b2cc: 6a7b ldr r3, [r7, #36] ; 0x24 800b2ce: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b2d2: 2303 movs r3, #3 800b2d4: f7f9 f9d6 bl 8004684 if(blk) 800b2d8: 683b ldr r3, [r7, #0] 800b2da: 2b00 cmp r3, #0 800b2dc: d00d beq.n 800b2fa BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+7, YPOS_KM_4[ch], ".", LEFT_MODE); 800b2de: 79fb ldrb r3, [r7, #7] 800b2e0: 4a78 ldr r2, [pc, #480] ; (800b4c4 ) 800b2e2: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b2e6: 3307 adds r3, #7 800b2e8: b298 uxth r0, r3 800b2ea: 79fb ldrb r3, [r7, #7] 800b2ec: 4a76 ldr r2, [pc, #472] ; (800b4c8 ) 800b2ee: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b2f2: 2303 movs r3, #3 800b2f4: 4a76 ldr r2, [pc, #472] ; (800b4d0 ) 800b2f6: f7f9 f9c5 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+14, YPOS_KM_4[ch], (char *) pNUMS[ikt], LEFT_MODE); 800b2fa: 79fb ldrb r3, [r7, #7] 800b2fc: 4a71 ldr r2, [pc, #452] ; (800b4c4 ) 800b2fe: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b302: 330e adds r3, #14 800b304: b298 uxth r0, r3 800b306: 79fb ldrb r3, [r7, #7] 800b308: 4a6f ldr r2, [pc, #444] ; (800b4c8 ) 800b30a: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b30e: 4a6f ldr r2, [pc, #444] ; (800b4cc ) 800b310: 6a3b ldr r3, [r7, #32] 800b312: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b316: 2303 movs r3, #3 800b318: f7f9 f9b4 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+21, YPOS_KM_4[ch], (char *) pNUMS[iks], LEFT_MODE); 800b31c: 79fb ldrb r3, [r7, #7] 800b31e: 4a69 ldr r2, [pc, #420] ; (800b4c4 ) 800b320: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b324: 3315 adds r3, #21 800b326: b298 uxth r0, r3 800b328: 79fb ldrb r3, [r7, #7] 800b32a: 4a67 ldr r2, [pc, #412] ; (800b4c8 ) 800b32c: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b330: 4a66 ldr r2, [pc, #408] ; (800b4cc ) 800b332: 69fb ldr r3, [r7, #28] 800b334: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b338: 2303 movs r3, #3 800b33a: f7f9 f9a3 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+28, YPOS_KM_4[ch], (char *) pNUMS[ikd], LEFT_MODE); 800b33e: 79fb ldrb r3, [r7, #7] 800b340: 4a60 ldr r2, [pc, #384] ; (800b4c4 ) 800b342: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b346: 331c adds r3, #28 800b348: b298 uxth r0, r3 800b34a: 79fb ldrb r3, [r7, #7] 800b34c: 4a5e ldr r2, [pc, #376] ; (800b4c8 ) 800b34e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b352: 4a5e ldr r2, [pc, #376] ; (800b4cc ) 800b354: 69bb ldr r3, [r7, #24] 800b356: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b35a: 2303 movs r3, #3 800b35c: f7f9 f992 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch]+35, YPOS_KM_4[ch], (char *) pNUMS[ike], LEFT_MODE); 800b360: 79fb ldrb r3, [r7, #7] 800b362: 4a58 ldr r2, [pc, #352] ; (800b4c4 ) 800b364: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b368: 3323 adds r3, #35 ; 0x23 800b36a: b298 uxth r0, r3 800b36c: 79fb ldrb r3, [r7, #7] 800b36e: 4a56 ldr r2, [pc, #344] ; (800b4c8 ) 800b370: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b374: 4a55 ldr r2, [pc, #340] ; (800b4cc ) 800b376: 697b ldr r3, [r7, #20] 800b378: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b37c: 2303 movs r3, #3 800b37e: f7f9 f981 bl 8004684 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800b382: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b386: 4853 ldr r0, [pc, #332] ; (800b4d4 ) 800b388: f7f9 f8b6 bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800b38c: 79fb ldrb r3, [r7, #7] 800b38e: 4a52 ldr r2, [pc, #328] ; (800b4d8 ) 800b390: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b394: 79fb ldrb r3, [r7, #7] 800b396: 4a51 ldr r2, [pc, #324] ; (800b4dc ) 800b398: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b39c: 4b50 ldr r3, [pc, #320] ; (800b4e0 ) 800b39e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800b3a2: b29b uxth r3, r3 800b3a4: 461d mov r5, r3 800b3a6: 79fb ldrb r3, [r7, #7] 800b3a8: 4a4d ldr r2, [pc, #308] ; (800b4e0 ) 800b3aa: 015b lsls r3, r3, #5 800b3ac: 4413 add r3, r2 800b3ae: 881b ldrh r3, [r3, #0] 800b3b0: b29b uxth r3, r3 800b3b2: 461c mov r4, r3 800b3b4: 4a4b ldr r2, [pc, #300] ; (800b4e4 ) 800b3b6: 006b lsls r3, r5, #1 800b3b8: 4423 add r3, r4 800b3ba: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b3be: 2303 movs r3, #3 800b3c0: f7f9 f960 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800b3c4: 79fb ldrb r3, [r7, #7] 800b3c6: 4a48 ldr r2, [pc, #288] ; (800b4e8 ) 800b3c8: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b3cc: 79fb ldrb r3, [r7, #7] 800b3ce: 4a47 ldr r2, [pc, #284] ; (800b4ec ) 800b3d0: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800b3d4: 4b42 ldr r3, [pc, #264] ; (800b4e0 ) 800b3d6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800b3da: b29b uxth r3, r3 800b3dc: 4619 mov r1, r3 800b3de: 79fb ldrb r3, [r7, #7] 800b3e0: 4a3f ldr r2, [pc, #252] ; (800b4e0 ) 800b3e2: 015b lsls r3, r3, #5 800b3e4: 4413 add r3, r2 800b3e6: 3302 adds r3, #2 800b3e8: 881b ldrh r3, [r3, #0] 800b3ea: b29b uxth r3, r3 800b3ec: 461d mov r5, r3 800b3ee: 4a40 ldr r2, [pc, #256] ; (800b4f0 ) 800b3f0: 460b mov r3, r1 800b3f2: 009b lsls r3, r3, #2 800b3f4: 440b add r3, r1 800b3f6: 442b add r3, r5 800b3f8: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b3fc: 2303 movs r3, #3 800b3fe: 4621 mov r1, r4 800b400: f7f9 f940 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800b404: 79fb ldrb r3, [r7, #7] 800b406: 4a3b ldr r2, [pc, #236] ; (800b4f4 ) 800b408: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b40c: 79fb ldrb r3, [r7, #7] 800b40e: 4a3a ldr r2, [pc, #232] ; (800b4f8 ) 800b410: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b414: 4b32 ldr r3, [pc, #200] ; (800b4e0 ) 800b416: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800b41a: b29b uxth r3, r3 800b41c: 461d mov r5, r3 800b41e: 79fb ldrb r3, [r7, #7] 800b420: 4a2f ldr r2, [pc, #188] ; (800b4e0 ) 800b422: 015b lsls r3, r3, #5 800b424: 4413 add r3, r2 800b426: 3304 adds r3, #4 800b428: 881b ldrh r3, [r3, #0] 800b42a: b29b uxth r3, r3 800b42c: 461c mov r4, r3 800b42e: 4a33 ldr r2, [pc, #204] ; (800b4fc ) 800b430: 00eb lsls r3, r5, #3 800b432: 4423 add r3, r4 800b434: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b438: 2303 movs r3, #3 800b43a: f7f9 f923 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 800b43e: 79fb ldrb r3, [r7, #7] 800b440: 4a20 ldr r2, [pc, #128] ; (800b4c4 ) 800b442: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b446: 332d adds r3, #45 ; 0x2d 800b448: b298 uxth r0, r3 800b44a: 79fb ldrb r3, [r7, #7] 800b44c: 4a1e ldr r2, [pc, #120] ; (800b4c8 ) 800b44e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800b452: 79fb ldrb r3, [r7, #7] 800b454: 4a22 ldr r2, [pc, #136] ; (800b4e0 ) 800b456: 015b lsls r3, r3, #5 800b458: 4413 add r3, r2 800b45a: 881b ldrh r3, [r3, #0] 800b45c: b29b uxth r3, r3 800b45e: 4619 mov r1, r3 800b460: 79fb ldrb r3, [r7, #7] 800b462: 4a1f ldr r2, [pc, #124] ; (800b4e0 ) 800b464: 015b lsls r3, r3, #5 800b466: 4413 add r3, r2 800b468: 3312 adds r3, #18 800b46a: 881b ldrh r3, [r3, #0] 800b46c: b29b uxth r3, r3 800b46e: 461d mov r5, r3 800b470: 4a23 ldr r2, [pc, #140] ; (800b500 ) 800b472: 460b mov r3, r1 800b474: 005b lsls r3, r3, #1 800b476: 440b add r3, r1 800b478: 442b add r3, r5 800b47a: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b47e: 2303 movs r3, #3 800b480: 4621 mov r1, r4 800b482: f7f9 f8ff bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800b486: 79fb ldrb r3, [r7, #7] 800b488: 4a1e ldr r2, [pc, #120] ; (800b504 ) 800b48a: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b48e: 79fb ldrb r3, [r7, #7] 800b490: 4a1d ldr r2, [pc, #116] ; (800b508 ) 800b492: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800b496: 79fb ldrb r3, [r7, #7] 800b498: 4a11 ldr r2, [pc, #68] ; (800b4e0 ) 800b49a: 015b lsls r3, r3, #5 800b49c: 4413 add r3, r2 800b49e: 3312 adds r3, #18 800b4a0: 881b ldrh r3, [r3, #0] 800b4a2: b29b uxth r3, r3 800b4a4: 461a mov r2, r3 800b4a6: 4919 ldr r1, [pc, #100] ; (800b50c ) 800b4a8: 4613 mov r3, r2 800b4aa: 009b lsls r3, r3, #2 800b4ac: 4413 add r3, r2 800b4ae: 009a lsls r2, r3, #2 800b4b0: 4413 add r3, r2 800b4b2: 6afa ldr r2, [r7, #44] ; 0x2c 800b4b4: 4413 add r3, r2 800b4b6: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800b4ba: 2303 movs r3, #3 800b4bc: 4621 mov r1, r4 800b4be: f7f9 f8e1 bl 8004684 } 800b4c2: e0d2 b.n 800b66a 800b4c4: 08015564 .word 0x08015564 800b4c8: 0801556c .word 0x0801556c 800b4cc: 200201ec .word 0x200201ec 800b4d0: 08012cb8 .word 0x08012cb8 800b4d4: ffd8aa57 .word 0xffd8aa57 800b4d8: 08015534 .word 0x08015534 800b4dc: 0801553c .word 0x0801553c 800b4e0: 2006b510 .word 0x2006b510 800b4e4: 20020030 .word 0x20020030 800b4e8: 08015544 .word 0x08015544 800b4ec: 0801554c .word 0x0801554c 800b4f0: 20020040 .word 0x20020040 800b4f4: 08015554 .word 0x08015554 800b4f8: 0801555c .word 0x0801555c 800b4fc: 20020068 .word 0x20020068 800b500: 200200a8 .word 0x200200a8 800b504: 08015574 .word 0x08015574 800b508: 0801557c .word 0x0801557c 800b50c: 200200c0 .word 0x200200c0 LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK); 800b510: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b514: 4857 ldr r0, [pc, #348] ; (800b674 ) 800b516: f7f8 ffef bl 80044f8 BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE); 800b51a: 79fb ldrb r3, [r7, #7] 800b51c: 4a56 ldr r2, [pc, #344] ; (800b678 ) 800b51e: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b522: 79fb ldrb r3, [r7, #7] 800b524: 4a55 ldr r2, [pc, #340] ; (800b67c ) 800b526: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b52a: 4b55 ldr r3, [pc, #340] ; (800b680 ) 800b52c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800b530: b29b uxth r3, r3 800b532: 461d mov r5, r3 800b534: 79fb ldrb r3, [r7, #7] 800b536: 4a52 ldr r2, [pc, #328] ; (800b680 ) 800b538: 015b lsls r3, r3, #5 800b53a: 4413 add r3, r2 800b53c: 881b ldrh r3, [r3, #0] 800b53e: b29b uxth r3, r3 800b540: 461c mov r4, r3 800b542: 4a50 ldr r2, [pc, #320] ; (800b684 ) 800b544: 006b lsls r3, r5, #1 800b546: 4423 add r3, r4 800b548: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b54c: 2303 movs r3, #3 800b54e: f7f9 f899 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE); 800b552: 79fb ldrb r3, [r7, #7] 800b554: 4a4c ldr r2, [pc, #304] ; (800b688 ) 800b556: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b55a: 79fb ldrb r3, [r7, #7] 800b55c: 4a4b ldr r2, [pc, #300] ; (800b68c ) 800b55e: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800b562: 4b47 ldr r3, [pc, #284] ; (800b680 ) 800b564: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800b568: b29b uxth r3, r3 800b56a: 4619 mov r1, r3 800b56c: 79fb ldrb r3, [r7, #7] 800b56e: 4a44 ldr r2, [pc, #272] ; (800b680 ) 800b570: 015b lsls r3, r3, #5 800b572: 4413 add r3, r2 800b574: 3302 adds r3, #2 800b576: 881b ldrh r3, [r3, #0] 800b578: b29b uxth r3, r3 800b57a: 461d mov r5, r3 800b57c: 4a44 ldr r2, [pc, #272] ; (800b690 ) 800b57e: 460b mov r3, r1 800b580: 009b lsls r3, r3, #2 800b582: 440b add r3, r1 800b584: 442b add r3, r5 800b586: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b58a: 2303 movs r3, #3 800b58c: 4621 mov r1, r4 800b58e: f7f9 f879 bl 8004684 BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE); 800b592: 79fb ldrb r3, [r7, #7] 800b594: 4a3f ldr r2, [pc, #252] ; (800b694 ) 800b596: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b59a: 79fb ldrb r3, [r7, #7] 800b59c: 4a3e ldr r2, [pc, #248] ; (800b698 ) 800b59e: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b5a2: 4b37 ldr r3, [pc, #220] ; (800b680 ) 800b5a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206 800b5a8: b29b uxth r3, r3 800b5aa: 461d mov r5, r3 800b5ac: 79fb ldrb r3, [r7, #7] 800b5ae: 4a34 ldr r2, [pc, #208] ; (800b680 ) 800b5b0: 015b lsls r3, r3, #5 800b5b2: 4413 add r3, r2 800b5b4: 3304 adds r3, #4 800b5b6: 881b ldrh r3, [r3, #0] 800b5b8: b29b uxth r3, r3 800b5ba: 461c mov r4, r3 800b5bc: 4a37 ldr r2, [pc, #220] ; (800b69c ) 800b5be: 00eb lsls r3, r5, #3 800b5c0: 4423 add r3, r4 800b5c2: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b5c6: 2303 movs r3, #3 800b5c8: f7f9 f85c bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch], YPOS_KM_4[ch], str, LEFT_MODE); //Sens 800b5cc: 79fb ldrb r3, [r7, #7] 800b5ce: 4a34 ldr r2, [pc, #208] ; (800b6a0 ) 800b5d0: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b5d4: 79fb ldrb r3, [r7, #7] 800b5d6: 4a33 ldr r2, [pc, #204] ; (800b6a4 ) 800b5d8: f832 1013 ldrh.w r1, [r2, r3, lsl #1] 800b5dc: f107 0208 add.w r2, r7, #8 800b5e0: 2303 movs r3, #3 800b5e2: f7f9 f84f bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KM_4[ch] + 45, YPOS_KM_4[ch], (char *) pVAL[pardata.amplif[ch].IIN][pardata.amplif[ch].VAL], LEFT_MODE); 800b5e6: 79fb ldrb r3, [r7, #7] 800b5e8: 4a2d ldr r2, [pc, #180] ; (800b6a0 ) 800b5ea: f832 3013 ldrh.w r3, [r2, r3, lsl #1] 800b5ee: 332d adds r3, #45 ; 0x2d 800b5f0: b298 uxth r0, r3 800b5f2: 79fb ldrb r3, [r7, #7] 800b5f4: 4a2b ldr r2, [pc, #172] ; (800b6a4 ) 800b5f6: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800b5fa: 79fb ldrb r3, [r7, #7] 800b5fc: 4a20 ldr r2, [pc, #128] ; (800b680 ) 800b5fe: 015b lsls r3, r3, #5 800b600: 4413 add r3, r2 800b602: 881b ldrh r3, [r3, #0] 800b604: b29b uxth r3, r3 800b606: 4619 mov r1, r3 800b608: 79fb ldrb r3, [r7, #7] 800b60a: 4a1d ldr r2, [pc, #116] ; (800b680 ) 800b60c: 015b lsls r3, r3, #5 800b60e: 4413 add r3, r2 800b610: 3312 adds r3, #18 800b612: 881b ldrh r3, [r3, #0] 800b614: b29b uxth r3, r3 800b616: 461d mov r5, r3 800b618: 4a23 ldr r2, [pc, #140] ; (800b6a8 ) 800b61a: 460b mov r3, r1 800b61c: 005b lsls r3, r3, #1 800b61e: 440b add r3, r1 800b620: 442b add r3, r5 800b622: f852 2023 ldr.w r2, [r2, r3, lsl #2] 800b626: 2303 movs r3, #3 800b628: 4621 mov r1, r4 800b62a: f7f9 f82b bl 8004684 BSP_LCD_DisplayStringAt(XPOS_KN_4[ch], YPOS_KN_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE); 800b62e: 79fb ldrb r3, [r7, #7] 800b630: 4a1e ldr r2, [pc, #120] ; (800b6ac ) 800b632: f832 0013 ldrh.w r0, [r2, r3, lsl #1] 800b636: 79fb ldrb r3, [r7, #7] 800b638: 4a1d ldr r2, [pc, #116] ; (800b6b0 ) 800b63a: f832 4013 ldrh.w r4, [r2, r3, lsl #1] 800b63e: 79fb ldrb r3, [r7, #7] 800b640: 4a0f ldr r2, [pc, #60] ; (800b680 ) 800b642: 015b lsls r3, r3, #5 800b644: 4413 add r3, r2 800b646: 3312 adds r3, #18 800b648: 881b ldrh r3, [r3, #0] 800b64a: b29b uxth r3, r3 800b64c: 461a mov r2, r3 800b64e: 4919 ldr r1, [pc, #100] ; (800b6b4 ) 800b650: 4613 mov r3, r2 800b652: 009b lsls r3, r3, #2 800b654: 4413 add r3, r2 800b656: 009a lsls r2, r3, #2 800b658: 4413 add r3, r2 800b65a: 6afa ldr r2, [r7, #44] ; 0x2c 800b65c: 4413 add r3, r2 800b65e: f851 2023 ldr.w r2, [r1, r3, lsl #2] 800b662: 2303 movs r3, #3 800b664: 4621 mov r1, r4 800b666: f7f9 f80d bl 8004684 } 800b66a: bf00 nop 800b66c: 3738 adds r7, #56 ; 0x38 800b66e: 46bd mov sp, r7 800b670: bdb0 pop {r4, r5, r7, pc} 800b672: bf00 nop 800b674: ffd8aa57 .word 0xffd8aa57 800b678: 08015534 .word 0x08015534 800b67c: 0801553c .word 0x0801553c 800b680: 2006b510 .word 0x2006b510 800b684: 20020030 .word 0x20020030 800b688: 08015544 .word 0x08015544 800b68c: 0801554c .word 0x0801554c 800b690: 20020040 .word 0x20020040 800b694: 08015554 .word 0x08015554 800b698: 0801555c .word 0x0801555c 800b69c: 20020068 .word 0x20020068 800b6a0: 08015564 .word 0x08015564 800b6a4: 0801556c .word 0x0801556c 800b6a8: 200200a8 .word 0x200200a8 800b6ac: 08015574 .word 0x08015574 800b6b0: 0801557c .word 0x0801557c 800b6b4: 200200c0 .word 0x200200c0 0800b6b8 : void DrawButtons(void) { 800b6b8: b580 push {r7, lr} 800b6ba: af00 add r7, sp, #0 if(menupos == Set100) 800b6bc: 4ba1 ldr r3, [pc, #644] ; (800b944 ) 800b6be: 781b ldrb r3, [r3, #0] 800b6c0: b2db uxtb r3, r3 800b6c2: 2b00 cmp r3, #0 800b6c4: d106 bne.n 800b6d4 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800b6c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b6ca: f04f 30ff mov.w r0, #4294967295 800b6ce: f7f8 ff13 bl 80044f8 800b6d2: e004 b.n 800b6de else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800b6d4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b6d8: 489b ldr r0, [pc, #620] ; (800b948 ) 800b6da: f7f8 ff0d bl 80044f8 BSP_LCD_FillRect(120, 40, 80, 20); //+100 800b6de: 2314 movs r3, #20 800b6e0: 2250 movs r2, #80 ; 0x50 800b6e2: 2128 movs r1, #40 ; 0x28 800b6e4: 2078 movs r0, #120 ; 0x78 800b6e6: f7f9 fac9 bl 8004c7c if(menupos == Set_100) 800b6ea: 4b96 ldr r3, [pc, #600] ; (800b944 ) 800b6ec: 781b ldrb r3, [r3, #0] 800b6ee: b2db uxtb r3, r3 800b6f0: 2b01 cmp r3, #1 800b6f2: d106 bne.n 800b702 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800b6f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b6f8: f04f 30ff mov.w r0, #4294967295 800b6fc: f7f8 fefc bl 80044f8 800b700: e004 b.n 800b70c else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800b702: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b706: 4890 ldr r0, [pc, #576] ; (800b948 ) 800b708: f7f8 fef6 bl 80044f8 BSP_LCD_FillRect(120, 65, 80, 20); //-100 800b70c: 2314 movs r3, #20 800b70e: 2250 movs r2, #80 ; 0x50 800b710: 2141 movs r1, #65 ; 0x41 800b712: 2078 movs r0, #120 ; 0x78 800b714: f7f9 fab2 bl 8004c7c if(menupos == Set10) 800b718: 4b8a ldr r3, [pc, #552] ; (800b944 ) 800b71a: 781b ldrb r3, [r3, #0] 800b71c: b2db uxtb r3, r3 800b71e: 2b02 cmp r3, #2 800b720: d106 bne.n 800b730 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800b722: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b726: f04f 30ff mov.w r0, #4294967295 800b72a: f7f8 fee5 bl 80044f8 800b72e: e004 b.n 800b73a else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800b730: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b734: 4884 ldr r0, [pc, #528] ; (800b948 ) 800b736: f7f8 fedf bl 80044f8 BSP_LCD_FillRect(120, 90, 80, 20); //+10 800b73a: 2314 movs r3, #20 800b73c: 2250 movs r2, #80 ; 0x50 800b73e: 215a movs r1, #90 ; 0x5a 800b740: 2078 movs r0, #120 ; 0x78 800b742: f7f9 fa9b bl 8004c7c if(menupos == Set_10) 800b746: 4b7f ldr r3, [pc, #508] ; (800b944 ) 800b748: 781b ldrb r3, [r3, #0] 800b74a: b2db uxtb r3, r3 800b74c: 2b03 cmp r3, #3 800b74e: d106 bne.n 800b75e LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800b750: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b754: f04f 30ff mov.w r0, #4294967295 800b758: f7f8 fece bl 80044f8 800b75c: e004 b.n 800b768 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800b75e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b762: 4879 ldr r0, [pc, #484] ; (800b948 ) 800b764: f7f8 fec8 bl 80044f8 BSP_LCD_FillRect(120, 115, 80, 20); //-10 800b768: 2314 movs r3, #20 800b76a: 2250 movs r2, #80 ; 0x50 800b76c: 2173 movs r1, #115 ; 0x73 800b76e: 2078 movs r0, #120 ; 0x78 800b770: f7f9 fa84 bl 8004c7c if(menupos == Set1) 800b774: 4b73 ldr r3, [pc, #460] ; (800b944 ) 800b776: 781b ldrb r3, [r3, #0] 800b778: b2db uxtb r3, r3 800b77a: 2b04 cmp r3, #4 800b77c: d106 bne.n 800b78c LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800b77e: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b782: f04f 30ff mov.w r0, #4294967295 800b786: f7f8 feb7 bl 80044f8 800b78a: e004 b.n 800b796 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800b78c: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b790: 486d ldr r0, [pc, #436] ; (800b948 ) 800b792: f7f8 feb1 bl 80044f8 BSP_LCD_FillRect(120, 140, 80, 20); //+1 800b796: 2314 movs r3, #20 800b798: 2250 movs r2, #80 ; 0x50 800b79a: 218c movs r1, #140 ; 0x8c 800b79c: 2078 movs r0, #120 ; 0x78 800b79e: f7f9 fa6d bl 8004c7c if(menupos == Set_1) 800b7a2: 4b68 ldr r3, [pc, #416] ; (800b944 ) 800b7a4: 781b ldrb r3, [r3, #0] 800b7a6: b2db uxtb r3, r3 800b7a8: 2b05 cmp r3, #5 800b7aa: d106 bne.n 800b7ba LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800b7ac: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b7b0: f04f 30ff mov.w r0, #4294967295 800b7b4: f7f8 fea0 bl 80044f8 800b7b8: e004 b.n 800b7c4 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800b7ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b7be: 4862 ldr r0, [pc, #392] ; (800b948 ) 800b7c0: f7f8 fe9a bl 80044f8 BSP_LCD_FillRect(120, 165, 80, 20); //-1 800b7c4: 2314 movs r3, #20 800b7c6: 2250 movs r2, #80 ; 0x50 800b7c8: 21a5 movs r1, #165 ; 0xa5 800b7ca: 2078 movs r0, #120 ; 0x78 800b7cc: f7f9 fa56 bl 8004c7c if(menupos == Next) 800b7d0: 4b5c ldr r3, [pc, #368] ; (800b944 ) 800b7d2: 781b ldrb r3, [r3, #0] 800b7d4: b2db uxtb r3, r3 800b7d6: 2b06 cmp r3, #6 800b7d8: d106 bne.n 800b7e8 LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK); 800b7da: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b7de: f04f 30ff mov.w r0, #4294967295 800b7e2: f7f8 fe89 bl 80044f8 800b7e6: e004 b.n 800b7f2 else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK); 800b7e8: f04f 417f mov.w r1, #4278190080 ; 0xff000000 800b7ec: 4856 ldr r0, [pc, #344] ; (800b948 ) 800b7ee: f7f8 fe83 bl 80044f8 BSP_LCD_FillRect(120, 190, 80, 20); //Next 800b7f2: 2314 movs r3, #20 800b7f4: 2250 movs r2, #80 ; 0x50 800b7f6: 21be movs r1, #190 ; 0xbe 800b7f8: 2078 movs r0, #120 ; 0x78 800b7fa: f7f9 fa3f bl 8004c7c //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// if(menupos == Set100) 800b7fe: 4b51 ldr r3, [pc, #324] ; (800b944 ) 800b800: 781b ldrb r3, [r3, #0] 800b802: b2db uxtb r3, r3 800b804: 2b00 cmp r3, #0 800b806: d106 bne.n 800b816 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800b808: f04f 31ff mov.w r1, #4294967295 800b80c: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b810: f7f8 fe72 bl 80044f8 800b814: e004 b.n 800b820 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800b816: 494c ldr r1, [pc, #304] ; (800b948 ) 800b818: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b81c: f7f8 fe6c bl 80044f8 BSP_LCD_DisplayStringAt(160, 40+5, "+100", CENTER_MODE); 800b820: 2301 movs r3, #1 800b822: 4a4a ldr r2, [pc, #296] ; (800b94c ) 800b824: 212d movs r1, #45 ; 0x2d 800b826: 20a0 movs r0, #160 ; 0xa0 800b828: f7f8 ff2c bl 8004684 if(menupos == Set_100) 800b82c: 4b45 ldr r3, [pc, #276] ; (800b944 ) 800b82e: 781b ldrb r3, [r3, #0] 800b830: b2db uxtb r3, r3 800b832: 2b01 cmp r3, #1 800b834: d106 bne.n 800b844 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800b836: f04f 31ff mov.w r1, #4294967295 800b83a: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b83e: f7f8 fe5b bl 80044f8 800b842: e004 b.n 800b84e else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800b844: 4940 ldr r1, [pc, #256] ; (800b948 ) 800b846: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b84a: f7f8 fe55 bl 80044f8 BSP_LCD_DisplayStringAt(160, 65+5, "-100", CENTER_MODE); 800b84e: 2301 movs r3, #1 800b850: 4a3f ldr r2, [pc, #252] ; (800b950 ) 800b852: 2146 movs r1, #70 ; 0x46 800b854: 20a0 movs r0, #160 ; 0xa0 800b856: f7f8 ff15 bl 8004684 if(menupos == Set10) 800b85a: 4b3a ldr r3, [pc, #232] ; (800b944 ) 800b85c: 781b ldrb r3, [r3, #0] 800b85e: b2db uxtb r3, r3 800b860: 2b02 cmp r3, #2 800b862: d106 bne.n 800b872 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800b864: f04f 31ff mov.w r1, #4294967295 800b868: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b86c: f7f8 fe44 bl 80044f8 800b870: e004 b.n 800b87c else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800b872: 4935 ldr r1, [pc, #212] ; (800b948 ) 800b874: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b878: f7f8 fe3e bl 80044f8 BSP_LCD_DisplayStringAt(160, 90+5, "+10", CENTER_MODE); 800b87c: 2301 movs r3, #1 800b87e: 4a35 ldr r2, [pc, #212] ; (800b954 ) 800b880: 215f movs r1, #95 ; 0x5f 800b882: 20a0 movs r0, #160 ; 0xa0 800b884: f7f8 fefe bl 8004684 if(menupos == Set_10) 800b888: 4b2e ldr r3, [pc, #184] ; (800b944 ) 800b88a: 781b ldrb r3, [r3, #0] 800b88c: b2db uxtb r3, r3 800b88e: 2b03 cmp r3, #3 800b890: d106 bne.n 800b8a0 LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800b892: f04f 31ff mov.w r1, #4294967295 800b896: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b89a: f7f8 fe2d bl 80044f8 800b89e: e004 b.n 800b8aa else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800b8a0: 4929 ldr r1, [pc, #164] ; (800b948 ) 800b8a2: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b8a6: f7f8 fe27 bl 80044f8 BSP_LCD_DisplayStringAt(160, 115+5, "-10", CENTER_MODE); 800b8aa: 2301 movs r3, #1 800b8ac: 4a2a ldr r2, [pc, #168] ; (800b958 ) 800b8ae: 2178 movs r1, #120 ; 0x78 800b8b0: 20a0 movs r0, #160 ; 0xa0 800b8b2: f7f8 fee7 bl 8004684 if(menupos == Set1) 800b8b6: 4b23 ldr r3, [pc, #140] ; (800b944 ) 800b8b8: 781b ldrb r3, [r3, #0] 800b8ba: b2db uxtb r3, r3 800b8bc: 2b04 cmp r3, #4 800b8be: d106 bne.n 800b8ce LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800b8c0: f04f 31ff mov.w r1, #4294967295 800b8c4: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b8c8: f7f8 fe16 bl 80044f8 800b8cc: e004 b.n 800b8d8 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800b8ce: 491e ldr r1, [pc, #120] ; (800b948 ) 800b8d0: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b8d4: f7f8 fe10 bl 80044f8 BSP_LCD_DisplayStringAt(160, 140+5, "+1", CENTER_MODE); 800b8d8: 2301 movs r3, #1 800b8da: 4a20 ldr r2, [pc, #128] ; (800b95c ) 800b8dc: 2191 movs r1, #145 ; 0x91 800b8de: 20a0 movs r0, #160 ; 0xa0 800b8e0: f7f8 fed0 bl 8004684 if(menupos == Set_1) 800b8e4: 4b17 ldr r3, [pc, #92] ; (800b944 ) 800b8e6: 781b ldrb r3, [r3, #0] 800b8e8: b2db uxtb r3, r3 800b8ea: 2b05 cmp r3, #5 800b8ec: d106 bne.n 800b8fc LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800b8ee: f04f 31ff mov.w r1, #4294967295 800b8f2: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b8f6: f7f8 fdff bl 80044f8 800b8fa: e004 b.n 800b906 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800b8fc: 4912 ldr r1, [pc, #72] ; (800b948 ) 800b8fe: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b902: f7f8 fdf9 bl 80044f8 BSP_LCD_DisplayStringAt(160, 165+5, "-1", CENTER_MODE); 800b906: 2301 movs r3, #1 800b908: 4a15 ldr r2, [pc, #84] ; (800b960 ) 800b90a: 21aa movs r1, #170 ; 0xaa 800b90c: 20a0 movs r0, #160 ; 0xa0 800b90e: f7f8 feb9 bl 8004684 if(menupos == Next) 800b912: 4b0c ldr r3, [pc, #48] ; (800b944 ) 800b914: 781b ldrb r3, [r3, #0] 800b916: b2db uxtb r3, r3 800b918: 2b06 cmp r3, #6 800b91a: d106 bne.n 800b92a LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE); 800b91c: f04f 31ff mov.w r1, #4294967295 800b920: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b924: f7f8 fde8 bl 80044f8 800b928: e004 b.n 800b934 else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY); 800b92a: 4907 ldr r1, [pc, #28] ; (800b948 ) 800b92c: f04f 407f mov.w r0, #4278190080 ; 0xff000000 800b930: f7f8 fde2 bl 80044f8 BSP_LCD_DisplayStringAt(160, 190+5, "Далее", CENTER_MODE); 800b934: 2301 movs r3, #1 800b936: 4a0b ldr r2, [pc, #44] ; (800b964 ) 800b938: 21c3 movs r1, #195 ; 0xc3 800b93a: 20a0 movs r0, #160 ; 0xa0 800b93c: f7f8 fea2 bl 8004684 } 800b940: bf00 nop 800b942: bd80 pop {r7, pc} 800b944: 20020010 .word 0x20020010 800b948: ff808080 .word 0xff808080 800b94c: 08012cbc .word 0x08012cbc 800b950: 08012cc4 .word 0x08012cc4 800b954: 08012ccc .word 0x08012ccc 800b958: 08012cd0 .word 0x08012cd0 800b95c: 08012cd4 .word 0x08012cd4 800b960: 08012cd8 .word 0x08012cd8 800b964: 08012cdc .word 0x08012cdc 0800b968 : char * FloatToASCII(float32_t Val, int32_t RoundTo) { 800b968: b580 push {r7, lr} 800b96a: b098 sub sp, #96 ; 0x60 800b96c: af00 add r7, sp, #0 800b96e: ed87 0a01 vstr s0, [r7, #4] 800b972: 6038 str r0, [r7, #0] uint8_t idx = 0; 800b974: 2300 movs r3, #0 800b976: f887 305f strb.w r3, [r7, #95] ; 0x5f int32_t i; float32_t value, F, I; uint32_t rnd = 0; 800b97a: 2300 movs r3, #0 800b97c: 653b str r3, [r7, #80] ; 0x50 uint32_t Tmp32 = 0; 800b97e: 2300 movs r3, #0 800b980: 63fb str r3, [r7, #60] ; 0x3c uint32_t Int32 = 0; 800b982: 2300 movs r3, #0 800b984: 64fb str r3, [r7, #76] ; 0x4c uint32_t Frac32 = 0; 800b986: 2300 movs r3, #0 800b988: 64bb str r3, [r7, #72] ; 0x48 uint32_t _I32 = 0; 800b98a: 2300 movs r3, #0 800b98c: 63bb str r3, [r7, #56] ; 0x38 uint32_t _F32 = 0; 800b98e: 2300 movs r3, #0 800b990: 637b str r3, [r7, #52] ; 0x34 uint32_t d = 0, dd = 0; 800b992: 2300 movs r3, #0 800b994: 647b str r3, [r7, #68] ; 0x44 800b996: 2300 movs r3, #0 800b998: 643b str r3, [r7, #64] ; 0x40 char tmparray[32]; volatile bool minus = false; 800b99a: 2300 movs r3, #0 800b99c: 72fb strb r3, [r7, #11] memset(tmparray, 0, 32); 800b99e: f107 030c add.w r3, r7, #12 800b9a2: 2220 movs r2, #32 800b9a4: 2100 movs r1, #0 800b9a6: 4618 mov r0, r3 800b9a8: f006 fcb5 bl 8012316 memset(pString, 0, 16); 800b9ac: 2210 movs r2, #16 800b9ae: 2100 movs r1, #0 800b9b0: 48b7 ldr r0, [pc, #732] ; (800bc90 ) 800b9b2: f006 fcb0 bl 8012316 value = Val; 800b9b6: 687b ldr r3, [r7, #4] 800b9b8: 633b str r3, [r7, #48] ; 0x30 if(value < 0) 800b9ba: edd7 7a0c vldr s15, [r7, #48] ; 0x30 800b9be: eef5 7ac0 vcmpe.f32 s15, #0.0 800b9c2: eef1 fa10 vmrs APSR_nzcv, fpscr 800b9c6: d501 bpl.n 800b9cc minus = true; 800b9c8: 2301 movs r3, #1 800b9ca: 72fb strb r3, [r7, #11] if(Val > 99999.0) 800b9cc: edd7 7a01 vldr s15, [r7, #4] 800b9d0: ed9f 7ab0 vldr s14, [pc, #704] ; 800bc94 800b9d4: eef4 7ac7 vcmpe.f32 s15, s14 800b9d8: eef1 fa10 vmrs APSR_nzcv, fpscr 800b9dc: dd30 ble.n 800ba40 { if(Val < 0) 800b9de: edd7 7a01 vldr s15, [r7, #4] 800b9e2: eef5 7ac0 vcmpe.f32 s15, #0.0 800b9e6: eef1 fa10 vmrs APSR_nzcv, fpscr 800b9ea: d515 bpl.n 800ba18 { pString[0] = '1'; 800b9ec: 4ba8 ldr r3, [pc, #672] ; (800bc90 ) 800b9ee: 2231 movs r2, #49 ; 0x31 800b9f0: 701a strb r2, [r3, #0] pString[1] = '.'; 800b9f2: 4ba7 ldr r3, [pc, #668] ; (800bc90 ) 800b9f4: 222e movs r2, #46 ; 0x2e 800b9f6: 705a strb r2, [r3, #1] pString[2] = '0'; 800b9f8: 4ba5 ldr r3, [pc, #660] ; (800bc90 ) 800b9fa: 2230 movs r2, #48 ; 0x30 800b9fc: 709a strb r2, [r3, #2] pString[3] = '0'; 800b9fe: 4ba4 ldr r3, [pc, #656] ; (800bc90 ) 800ba00: 2230 movs r2, #48 ; 0x30 800ba02: 70da strb r2, [r3, #3] pString[4] = '0'; 800ba04: 4ba2 ldr r3, [pc, #648] ; (800bc90 ) 800ba06: 2230 movs r2, #48 ; 0x30 800ba08: 711a strb r2, [r3, #4] pString[5] = '0'; 800ba0a: 4ba1 ldr r3, [pc, #644] ; (800bc90 ) 800ba0c: 2230 movs r2, #48 ; 0x30 800ba0e: 715a strb r2, [r3, #5] pString[6] = '\0'; 800ba10: 4b9f ldr r3, [pc, #636] ; (800bc90 ) 800ba12: 2200 movs r2, #0 800ba14: 719a strb r2, [r3, #6] 800ba16: e011 b.n 800ba3c } else { pString[0] = '9'; 800ba18: 4b9d ldr r3, [pc, #628] ; (800bc90 ) 800ba1a: 2239 movs r2, #57 ; 0x39 800ba1c: 701a strb r2, [r3, #0] pString[1] = '9'; 800ba1e: 4b9c ldr r3, [pc, #624] ; (800bc90 ) 800ba20: 2239 movs r2, #57 ; 0x39 800ba22: 705a strb r2, [r3, #1] pString[2] = '9'; 800ba24: 4b9a ldr r3, [pc, #616] ; (800bc90 ) 800ba26: 2239 movs r2, #57 ; 0x39 800ba28: 709a strb r2, [r3, #2] pString[3] = '9'; 800ba2a: 4b99 ldr r3, [pc, #612] ; (800bc90 ) 800ba2c: 2239 movs r2, #57 ; 0x39 800ba2e: 70da strb r2, [r3, #3] pString[4] = '9'; 800ba30: 4b97 ldr r3, [pc, #604] ; (800bc90 ) 800ba32: 2239 movs r2, #57 ; 0x39 800ba34: 711a strb r2, [r3, #4] pString[5] = '\0'; 800ba36: 4b96 ldr r3, [pc, #600] ; (800bc90 ) 800ba38: 2200 movs r2, #0 800ba3a: 715a strb r2, [r3, #5] } return pString; 800ba3c: 4b94 ldr r3, [pc, #592] ; (800bc90 ) 800ba3e: e168 b.n 800bd12 } value = ABS(Val); 800ba40: edd7 7a01 vldr s15, [r7, #4] 800ba44: eef5 7ac0 vcmpe.f32 s15, #0.0 800ba48: eef1 fa10 vmrs APSR_nzcv, fpscr 800ba4c: dd02 ble.n 800ba54 800ba4e: edd7 7a01 vldr s15, [r7, #4] 800ba52: e003 b.n 800ba5c 800ba54: edd7 7a01 vldr s15, [r7, #4] 800ba58: eef1 7a67 vneg.f32 s15, s15 800ba5c: edc7 7a0c vstr s15, [r7, #48] ; 0x30 rnd = ABS(RoundTo); 800ba60: 683b ldr r3, [r7, #0] 800ba62: 2b00 cmp r3, #0 800ba64: bfb8 it lt 800ba66: 425b neglt r3, r3 800ba68: 653b str r3, [r7, #80] ; 0x50 if(RoundTo < 0) 800ba6a: 683b ldr r3, [r7, #0] 800ba6c: 2b00 cmp r3, #0 800ba6e: da47 bge.n 800bb00 { F = modff(value, &I); 800ba70: f107 032c add.w r3, r7, #44 ; 0x2c 800ba74: 4618 mov r0, r3 800ba76: ed97 0a0c vldr s0, [r7, #48] ; 0x30 800ba7a: f006 fbcf bl 801221c 800ba7e: ed87 0a15 vstr s0, [r7, #84] ; 0x54 while(rnd) 800ba82: e00d b.n 800baa0 { F *= 10.0f; 800ba84: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800ba88: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0 800ba8c: ee67 7a87 vmul.f32 s15, s15, s14 800ba90: edc7 7a15 vstr s15, [r7, #84] ; 0x54 rnd--; 800ba94: 6d3b ldr r3, [r7, #80] ; 0x50 800ba96: 3b01 subs r3, #1 800ba98: 653b str r3, [r7, #80] ; 0x50 d++; 800ba9a: 6c7b ldr r3, [r7, #68] ; 0x44 800ba9c: 3301 adds r3, #1 800ba9e: 647b str r3, [r7, #68] ; 0x44 while(rnd) 800baa0: 6d3b ldr r3, [r7, #80] ; 0x50 800baa2: 2b00 cmp r3, #0 800baa4: d1ee bne.n 800ba84 } F = roundf(F); 800baa6: ed97 0a15 vldr s0, [r7, #84] ; 0x54 800baaa: f006 fbdf bl 801226c 800baae: ed87 0a15 vstr s0, [r7, #84] ; 0x54 dd = 1; 800bab2: 2301 movs r3, #1 800bab4: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < d; i++) 800bab6: 2300 movs r3, #0 800bab8: 65bb str r3, [r7, #88] ; 0x58 800baba: e008 b.n 800bace dd *= 10; 800babc: 6c3a ldr r2, [r7, #64] ; 0x40 800babe: 4613 mov r3, r2 800bac0: 009b lsls r3, r3, #2 800bac2: 4413 add r3, r2 800bac4: 005b lsls r3, r3, #1 800bac6: 643b str r3, [r7, #64] ; 0x40 for(i = 0; i < d; i++) 800bac8: 6dbb ldr r3, [r7, #88] ; 0x58 800baca: 3301 adds r3, #1 800bacc: 65bb str r3, [r7, #88] ; 0x58 800bace: 6dba ldr r2, [r7, #88] ; 0x58 800bad0: 6c7b ldr r3, [r7, #68] ; 0x44 800bad2: 429a cmp r2, r3 800bad4: d3f2 bcc.n 800babc if((uint32_t) F == dd) 800bad6: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800bada: eefc 7ae7 vcvt.u32.f32 s15, s15 800bade: ee17 2a90 vmov r2, s15 800bae2: 6c3b ldr r3, [r7, #64] ; 0x40 800bae4: 429a cmp r2, r3 800bae6: d116 bne.n 800bb16 { F = 0; 800bae8: f04f 0300 mov.w r3, #0 800baec: 657b str r3, [r7, #84] ; 0x54 I += 1; 800baee: edd7 7a0b vldr s15, [r7, #44] ; 0x2c 800baf2: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0 800baf6: ee77 7a87 vadd.f32 s15, s15, s14 800bafa: edc7 7a0b vstr s15, [r7, #44] ; 0x2c 800bafe: e00a b.n 800bb16 } } else { I = roundf(value); 800bb00: ed97 0a0c vldr s0, [r7, #48] ; 0x30 800bb04: f006 fbb2 bl 801226c 800bb08: eef0 7a40 vmov.f32 s15, s0 800bb0c: edc7 7a0b vstr s15, [r7, #44] ; 0x2c F = 0.0f; 800bb10: f04f 0300 mov.w r3, #0 800bb14: 657b str r3, [r7, #84] ; 0x54 } Int32 = (uint32_t) I; 800bb16: edd7 7a0b vldr s15, [r7, #44] ; 0x2c 800bb1a: eefc 7ae7 vcvt.u32.f32 s15, s15 800bb1e: ee17 3a90 vmov r3, s15 800bb22: 64fb str r3, [r7, #76] ; 0x4c Frac32 = (uint32_t) F; 800bb24: edd7 7a15 vldr s15, [r7, #84] ; 0x54 800bb28: eefc 7ae7 vcvt.u32.f32 s15, s15 800bb2c: ee17 3a90 vmov r3, s15 800bb30: 64bb str r3, [r7, #72] ; 0x48 _I32 = Int32; 800bb32: 6cfb ldr r3, [r7, #76] ; 0x4c 800bb34: 63bb str r3, [r7, #56] ; 0x38 _F32 = Frac32; 800bb36: 6cbb ldr r3, [r7, #72] ; 0x48 800bb38: 637b str r3, [r7, #52] ; 0x34 idx = 0; 800bb3a: 2300 movs r3, #0 800bb3c: f887 305f strb.w r3, [r7, #95] ; 0x5f tmparray[idx++] = '\0'; 800bb40: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bb44: 1c5a adds r2, r3, #1 800bb46: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bb4a: f107 0260 add.w r2, r7, #96 ; 0x60 800bb4e: 4413 add r3, r2 800bb50: 2200 movs r2, #0 800bb52: f803 2c54 strb.w r2, [r3, #-84] if((Int32 == 0) && (Frac32 == 0)) 800bb56: 6cfb ldr r3, [r7, #76] ; 0x4c 800bb58: 2b00 cmp r3, #0 800bb5a: d135 bne.n 800bbc8 800bb5c: 6cbb ldr r3, [r7, #72] ; 0x48 800bb5e: 2b00 cmp r3, #0 800bb60: d132 bne.n 800bbc8 { if(RoundTo < 0) 800bb62: 683b ldr r3, [r7, #0] 800bb64: 2b00 cmp r3, #0 800bb66: da23 bge.n 800bbb0 { for(i = 0; i < ABS(RoundTo); i++) 800bb68: 2300 movs r3, #0 800bb6a: 65bb str r3, [r7, #88] ; 0x58 800bb6c: e00d b.n 800bb8a tmparray[idx++] = '0'; 800bb6e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bb72: 1c5a adds r2, r3, #1 800bb74: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bb78: f107 0260 add.w r2, r7, #96 ; 0x60 800bb7c: 4413 add r3, r2 800bb7e: 2230 movs r2, #48 ; 0x30 800bb80: f803 2c54 strb.w r2, [r3, #-84] for(i = 0; i < ABS(RoundTo); i++) 800bb84: 6dbb ldr r3, [r7, #88] ; 0x58 800bb86: 3301 adds r3, #1 800bb88: 65bb str r3, [r7, #88] ; 0x58 800bb8a: 683b ldr r3, [r7, #0] 800bb8c: ea83 72e3 eor.w r2, r3, r3, asr #31 800bb90: eba2 72e3 sub.w r2, r2, r3, asr #31 800bb94: 6dbb ldr r3, [r7, #88] ; 0x58 800bb96: 429a cmp r2, r3 800bb98: dce9 bgt.n 800bb6e tmparray[idx++] = '.'; 800bb9a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bb9e: 1c5a adds r2, r3, #1 800bba0: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bba4: f107 0260 add.w r2, r7, #96 ; 0x60 800bba8: 4413 add r3, r2 800bbaa: 222e movs r2, #46 ; 0x2e 800bbac: f803 2c54 strb.w r2, [r3, #-84] } tmparray[idx++] = '0'; 800bbb0: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bbb4: 1c5a adds r2, r3, #1 800bbb6: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bbba: f107 0260 add.w r2, r7, #96 ; 0x60 800bbbe: 4413 add r3, r2 800bbc0: 2230 movs r2, #48 ; 0x30 800bbc2: f803 2c54 strb.w r2, [r3, #-84] 800bbc6: e089 b.n 800bcdc } else { if(RoundTo < 0) 800bbc8: 683b ldr r3, [r7, #0] 800bbca: 2b00 cmp r3, #0 800bbcc: da38 bge.n 800bc40 { for(i = 0; i < ABS(RoundTo); i++) 800bbce: 2300 movs r3, #0 800bbd0: 65bb str r3, [r7, #88] ; 0x58 800bbd2: e022 b.n 800bc1a { Tmp32 = Frac32; 800bbd4: 6cbb ldr r3, [r7, #72] ; 0x48 800bbd6: 63fb str r3, [r7, #60] ; 0x3c Frac32 /= 10; 800bbd8: 6cbb ldr r3, [r7, #72] ; 0x48 800bbda: 4a2f ldr r2, [pc, #188] ; (800bc98 ) 800bbdc: fba2 2303 umull r2, r3, r2, r3 800bbe0: 08db lsrs r3, r3, #3 800bbe2: 64bb str r3, [r7, #72] ; 0x48 Tmp32 = Tmp32 - Frac32 * 10; 800bbe4: 6cba ldr r2, [r7, #72] ; 0x48 800bbe6: 4613 mov r3, r2 800bbe8: 009b lsls r3, r3, #2 800bbea: 4413 add r3, r2 800bbec: 005b lsls r3, r3, #1 800bbee: 461a mov r2, r3 800bbf0: 6bfb ldr r3, [r7, #60] ; 0x3c 800bbf2: 1a9b subs r3, r3, r2 800bbf4: 63fb str r3, [r7, #60] ; 0x3c tmparray[idx++] = '0' + Tmp32; 800bbf6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bbfa: 1c5a adds r2, r3, #1 800bbfc: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bc00: 4619 mov r1, r3 800bc02: 6bfb ldr r3, [r7, #60] ; 0x3c 800bc04: b2db uxtb r3, r3 800bc06: 3330 adds r3, #48 ; 0x30 800bc08: b2da uxtb r2, r3 800bc0a: f107 0360 add.w r3, r7, #96 ; 0x60 800bc0e: 440b add r3, r1 800bc10: f803 2c54 strb.w r2, [r3, #-84] for(i = 0; i < ABS(RoundTo); i++) 800bc14: 6dbb ldr r3, [r7, #88] ; 0x58 800bc16: 3301 adds r3, #1 800bc18: 65bb str r3, [r7, #88] ; 0x58 800bc1a: 683b ldr r3, [r7, #0] 800bc1c: ea83 72e3 eor.w r2, r3, r3, asr #31 800bc20: eba2 72e3 sub.w r2, r2, r3, asr #31 800bc24: 6dbb ldr r3, [r7, #88] ; 0x58 800bc26: 429a cmp r2, r3 800bc28: dcd4 bgt.n 800bbd4 } tmparray[idx++] = '.'; 800bc2a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bc2e: 1c5a adds r2, r3, #1 800bc30: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bc34: f107 0260 add.w r2, r7, #96 ; 0x60 800bc38: 4413 add r3, r2 800bc3a: 222e movs r2, #46 ; 0x2e 800bc3c: f803 2c54 strb.w r2, [r3, #-84] } if(Int32 != 0) 800bc40: 6cfb ldr r3, [r7, #76] ; 0x4c 800bc42: 2b00 cmp r3, #0 800bc44: d02a beq.n 800bc9c { while(Int32) 800bc46: e01f b.n 800bc88 { Tmp32 = Int32; 800bc48: 6cfb ldr r3, [r7, #76] ; 0x4c 800bc4a: 63fb str r3, [r7, #60] ; 0x3c Int32 /= 10; 800bc4c: 6cfb ldr r3, [r7, #76] ; 0x4c 800bc4e: 4a12 ldr r2, [pc, #72] ; (800bc98 ) 800bc50: fba2 2303 umull r2, r3, r2, r3 800bc54: 08db lsrs r3, r3, #3 800bc56: 64fb str r3, [r7, #76] ; 0x4c Tmp32 = Tmp32 - Int32 * 10; 800bc58: 6cfa ldr r2, [r7, #76] ; 0x4c 800bc5a: 4613 mov r3, r2 800bc5c: 009b lsls r3, r3, #2 800bc5e: 4413 add r3, r2 800bc60: 005b lsls r3, r3, #1 800bc62: 461a mov r2, r3 800bc64: 6bfb ldr r3, [r7, #60] ; 0x3c 800bc66: 1a9b subs r3, r3, r2 800bc68: 63fb str r3, [r7, #60] ; 0x3c tmparray[idx++] = '0' + Tmp32; 800bc6a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bc6e: 1c5a adds r2, r3, #1 800bc70: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bc74: 4619 mov r1, r3 800bc76: 6bfb ldr r3, [r7, #60] ; 0x3c 800bc78: b2db uxtb r3, r3 800bc7a: 3330 adds r3, #48 ; 0x30 800bc7c: b2da uxtb r2, r3 800bc7e: f107 0360 add.w r3, r7, #96 ; 0x60 800bc82: 440b add r3, r1 800bc84: f803 2c54 strb.w r2, [r3, #-84] while(Int32) 800bc88: 6cfb ldr r3, [r7, #76] ; 0x4c 800bc8a: 2b00 cmp r3, #0 800bc8c: d1dc bne.n 800bc48 800bc8e: e010 b.n 800bcb2 800bc90: 2006bab4 .word 0x2006bab4 800bc94: 47c34f80 .word 0x47c34f80 800bc98: cccccccd .word 0xcccccccd } } else tmparray[idx++] = '0'; 800bc9c: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bca0: 1c5a adds r2, r3, #1 800bca2: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bca6: f107 0260 add.w r2, r7, #96 ; 0x60 800bcaa: 4413 add r3, r2 800bcac: 2230 movs r2, #48 ; 0x30 800bcae: f803 2c54 strb.w r2, [r3, #-84] if(minus) 800bcb2: 7afb ldrb r3, [r7, #11] 800bcb4: b2db uxtb r3, r3 800bcb6: 2b00 cmp r3, #0 800bcb8: d010 beq.n 800bcdc { if((_I32 != 0) || (_F32 != 0)) 800bcba: 6bbb ldr r3, [r7, #56] ; 0x38 800bcbc: 2b00 cmp r3, #0 800bcbe: d102 bne.n 800bcc6 800bcc0: 6b7b ldr r3, [r7, #52] ; 0x34 800bcc2: 2b00 cmp r3, #0 800bcc4: d00a beq.n 800bcdc tmparray[idx++] = '-'; 800bcc6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f 800bcca: 1c5a adds r2, r3, #1 800bccc: f887 205f strb.w r2, [r7, #95] ; 0x5f 800bcd0: f107 0260 add.w r2, r7, #96 ; 0x60 800bcd4: 4413 add r3, r2 800bcd6: 222d movs r2, #45 ; 0x2d 800bcd8: f803 2c54 strb.w r2, [r3, #-84] } } for(i = 0; i < idx; i++) 800bcdc: 2300 movs r3, #0 800bcde: 65bb str r3, [r7, #88] ; 0x58 800bce0: e011 b.n 800bd06 pString[i] = tmparray[idx - i - 1]; 800bce2: f897 205f ldrb.w r2, [r7, #95] ; 0x5f 800bce6: 6dbb ldr r3, [r7, #88] ; 0x58 800bce8: 1ad3 subs r3, r2, r3 800bcea: 3b01 subs r3, #1 800bcec: f107 0260 add.w r2, r7, #96 ; 0x60 800bcf0: 4413 add r3, r2 800bcf2: f813 1c54 ldrb.w r1, [r3, #-84] 800bcf6: 4a09 ldr r2, [pc, #36] ; (800bd1c ) 800bcf8: 6dbb ldr r3, [r7, #88] ; 0x58 800bcfa: 4413 add r3, r2 800bcfc: 460a mov r2, r1 800bcfe: 701a strb r2, [r3, #0] for(i = 0; i < idx; i++) 800bd00: 6dbb ldr r3, [r7, #88] ; 0x58 800bd02: 3301 adds r3, #1 800bd04: 65bb str r3, [r7, #88] ; 0x58 800bd06: f897 205f ldrb.w r2, [r7, #95] ; 0x5f 800bd0a: 6dbb ldr r3, [r7, #88] ; 0x58 800bd0c: 429a cmp r2, r3 800bd0e: dce8 bgt.n 800bce2 return pString; 800bd10: 4b02 ldr r3, [pc, #8] ; (800bd1c ) } 800bd12: 4618 mov r0, r3 800bd14: 3760 adds r7, #96 ; 0x60 800bd16: 46bd mov sp, r7 800bd18: bd80 pop {r7, pc} 800bd1a: bf00 nop 800bd1c: 2006bab4 .word 0x2006bab4 0800bd20 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { 800bd20: b480 push {r7} 800bd22: b083 sub sp, #12 800bd24: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_PWR_CLK_ENABLE(); 800bd26: 4a0f ldr r2, [pc, #60] ; (800bd64 ) 800bd28: 4b0e ldr r3, [pc, #56] ; (800bd64 ) 800bd2a: 6c1b ldr r3, [r3, #64] ; 0x40 800bd2c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 800bd30: 6413 str r3, [r2, #64] ; 0x40 800bd32: 4b0c ldr r3, [pc, #48] ; (800bd64 ) 800bd34: 6c1b ldr r3, [r3, #64] ; 0x40 800bd36: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 800bd3a: 607b str r3, [r7, #4] 800bd3c: 687b ldr r3, [r7, #4] __HAL_RCC_SYSCFG_CLK_ENABLE(); 800bd3e: 4a09 ldr r2, [pc, #36] ; (800bd64 ) 800bd40: 4b08 ldr r3, [pc, #32] ; (800bd64 ) 800bd42: 6c5b ldr r3, [r3, #68] ; 0x44 800bd44: f443 4380 orr.w r3, r3, #16384 ; 0x4000 800bd48: 6453 str r3, [r2, #68] ; 0x44 800bd4a: 4b06 ldr r3, [pc, #24] ; (800bd64 ) 800bd4c: 6c5b ldr r3, [r3, #68] ; 0x44 800bd4e: f403 4380 and.w r3, r3, #16384 ; 0x4000 800bd52: 603b str r3, [r7, #0] 800bd54: 683b ldr r3, [r7, #0] /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } 800bd56: bf00 nop 800bd58: 370c adds r7, #12 800bd5a: 46bd mov sp, r7 800bd5c: f85d 7b04 ldr.w r7, [sp], #4 800bd60: 4770 bx lr 800bd62: bf00 nop 800bd64: 40023800 .word 0x40023800 0800bd68 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { 800bd68: b480 push {r7} 800bd6a: af00 add r7, sp, #0 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) 800bd6c: e7fe b.n 800bd6c 0800bd6e : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { 800bd6e: b480 push {r7} 800bd70: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) 800bd72: e7fe b.n 800bd72 0800bd74 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { 800bd74: b480 push {r7} 800bd76: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) 800bd78: e7fe b.n 800bd78 0800bd7a : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { 800bd7a: b480 push {r7} 800bd7c: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) 800bd7e: e7fe b.n 800bd7e 0800bd80 : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { 800bd80: b480 push {r7} 800bd82: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) 800bd84: e7fe b.n 800bd84 0800bd86 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { 800bd86: b480 push {r7} 800bd88: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } 800bd8a: bf00 nop 800bd8c: 46bd mov sp, r7 800bd8e: f85d 7b04 ldr.w r7, [sp], #4 800bd92: 4770 bx lr 0800bd94 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { 800bd94: b480 push {r7} 800bd96: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } 800bd98: bf00 nop 800bd9a: 46bd mov sp, r7 800bd9c: f85d 7b04 ldr.w r7, [sp], #4 800bda0: 4770 bx lr 0800bda2 : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { 800bda2: b480 push {r7} 800bda4: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } 800bda6: bf00 nop 800bda8: 46bd mov sp, r7 800bdaa: f85d 7b04 ldr.w r7, [sp], #4 800bdae: 4770 bx lr 0800bdb0 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { 800bdb0: b580 push {r7, lr} 800bdb2: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); 800bdb4: f001 fe62 bl 800da7c /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } 800bdb8: bf00 nop 800bdba: bd80 pop {r7, pc} 0800bdbc : /** * @brief This function handles EXTI line2 interrupt. */ void EXTI2_IRQHandler(void) { 800bdbc: b580 push {r7, lr} 800bdbe: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI2_IRQn 0 */ /* USER CODE END EXTI2_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); 800bdc0: 2004 movs r0, #4 800bdc2: f002 fe7b bl 800eabc /* USER CODE BEGIN EXTI2_IRQn 1 */ /* USER CODE END EXTI2_IRQn 1 */ } 800bdc6: bf00 nop 800bdc8: bd80 pop {r7, pc} 0800bdca : /** * @brief This function handles EXTI line3 interrupt. */ void EXTI3_IRQHandler(void) { 800bdca: b580 push {r7, lr} 800bdcc: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI3_IRQn 0 */ /* USER CODE END EXTI3_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3); 800bdce: 2008 movs r0, #8 800bdd0: f002 fe74 bl 800eabc /* USER CODE BEGIN EXTI3_IRQn 1 */ /* USER CODE END EXTI3_IRQn 1 */ } 800bdd4: bf00 nop 800bdd6: bd80 pop {r7, pc} 0800bdd8 : /** * @brief This function handles TIM7 global interrupt. */ void TIM7_IRQHandler(void) { 800bdd8: b580 push {r7, lr} 800bdda: af00 add r7, sp, #0 /* USER CODE BEGIN TIM7_IRQn 0 */ /* USER CODE END TIM7_IRQn 0 */ HAL_TIM_IRQHandler(&htim7); 800bddc: 4802 ldr r0, [pc, #8] ; (800bde8 ) 800bdde: f004 fbcf bl 8010580 /* USER CODE BEGIN TIM7_IRQn 1 */ /* USER CODE END TIM7_IRQn 1 */ } 800bde2: bf00 nop 800bde4: bd80 pop {r7, pc} 800bde6: bf00 nop 800bde8: 2006bc50 .word 0x2006bc50 0800bdec : * @brief This function handles DMA2 stream3 global interrupt. */ void DMA2_Stream1_IRQHandler(void) { 800bdec: b580 push {r7, lr} 800bdee: af00 add r7, sp, #0 /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */ /* USER CODE END DMA2_Stream3_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc3); 800bdf0: 4802 ldr r0, [pc, #8] ; (800bdfc ) 800bdf2: f002 f857 bl 800dea4 /* USER CODE BEGIN DMA2_Stream3_IRQn 1 */ /* USER CODE END DMA2_Stream3_IRQn 1 */ } 800bdf6: bf00 nop 800bdf8: bd80 pop {r7, pc} 800bdfa: bf00 nop 800bdfc: 2006b348 .word 0x2006b348 0800be00 : /** * @brief This function handles DMA2 stream4 global interrupt. */ void DMA2_Stream4_IRQHandler(void) { 800be00: b580 push {r7, lr} 800be02: af00 add r7, sp, #0 /* USER CODE BEGIN DMA2_Stream4_IRQn 0 */ /* USER CODE END DMA2_Stream4_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc1); 800be04: 4802 ldr r0, [pc, #8] ; (800be10 ) 800be06: f002 f84d bl 800dea4 /* USER CODE BEGIN DMA2_Stream4_IRQn 1 */ /* USER CODE END DMA2_Stream4_IRQn 1 */ } 800be0a: bf00 nop 800be0c: bd80 pop {r7, pc} 800be0e: bf00 nop 800be10: 2006b438 .word 0x2006b438 0800be14 : /** * @brief This function handles LTDC global interrupt. */ void LTDC_IRQHandler(void) { 800be14: b580 push {r7, lr} 800be16: af00 add r7, sp, #0 /* USER CODE BEGIN LTDC_IRQn 0 */ /* USER CODE END LTDC_IRQn 0 */ HAL_LTDC_IRQHandler(&hLtdcHandler); 800be18: 4802 ldr r0, [pc, #8] ; (800be24 ) 800be1a: f002 ff37 bl 800ec8c /* USER CODE BEGIN LTDC_IRQn 1 */ /* USER CODE END LTDC_IRQn 1 */ } 800be1e: bf00 nop 800be20: bd80 pop {r7, pc} 800be22: bf00 nop 800be24: 2006b9dc .word 0x2006b9dc 0800be28 : /** * @brief This function handles LTDC global error interrupt. */ void LTDC_ER_IRQHandler(void) { 800be28: b580 push {r7, lr} 800be2a: af00 add r7, sp, #0 /* USER CODE BEGIN LTDC_ER_IRQn 0 */ /* USER CODE END LTDC_ER_IRQn 0 */ HAL_LTDC_IRQHandler(&hLtdcHandler); 800be2c: 4802 ldr r0, [pc, #8] ; (800be38 ) 800be2e: f002 ff2d bl 800ec8c /* USER CODE BEGIN LTDC_ER_IRQn 1 */ /* USER CODE END LTDC_ER_IRQn 1 */ } 800be32: bf00 nop 800be34: bd80 pop {r7, pc} 800be36: bf00 nop 800be38: 2006b9dc .word 0x2006b9dc 0800be3c : * SystemFrequency variable. * @param None * @retval None */ void SystemInit(void) { 800be3c: b480 push {r7} 800be3e: af00 add r7, sp, #0 /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ 800be40: 4a06 ldr r2, [pc, #24] ; (800be5c ) 800be42: 4b06 ldr r3, [pc, #24] ; (800be5c ) 800be44: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 800be48: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 800be4c: f8c2 3088 str.w r3, [r2, #136] ; 0x88 /* Configure the Vector Table location -------------------------------------*/ #if defined(USER_VECT_TAB_ADDRESS) SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #endif /* USER_VECT_TAB_ADDRESS */ } 800be50: bf00 nop 800be52: 46bd mov sp, r7 800be54: f85d 7b04 ldr.w r7, [sp], #4 800be58: 4770 bx lr 800be5a: bf00 nop 800be5c: e000ed00 .word 0xe000ed00 0800be60 : } /* TIM7 init function */ void MX_TIM7_Init(void) { 800be60: b580 push {r7, lr} 800be62: b084 sub sp, #16 800be64: af00 add r7, sp, #0 TIM_MasterConfigTypeDef sMasterConfig; htim7.Instance = TIM7; 800be66: 4b16 ldr r3, [pc, #88] ; (800bec0 ) 800be68: 4a16 ldr r2, [pc, #88] ; (800bec4 ) 800be6a: 601a str r2, [r3, #0] htim7.Init.Prescaler = (10 - 1); 800be6c: 4b14 ldr r3, [pc, #80] ; (800bec0 ) 800be6e: 2209 movs r2, #9 800be70: 605a str r2, [r3, #4] htim7.Init.CounterMode = TIM_COUNTERMODE_UP; 800be72: 4b13 ldr r3, [pc, #76] ; (800bec0 ) 800be74: 2200 movs r2, #0 800be76: 609a str r2, [r3, #8] htim7.Init.Period = (54000 - 1); 800be78: 4b11 ldr r3, [pc, #68] ; (800bec0 ) 800be7a: f24d 22ef movw r2, #53999 ; 0xd2ef 800be7e: 60da str r2, [r3, #12] htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; 800be80: 4b0f ldr r3, [pc, #60] ; (800bec0 ) 800be82: 2200 movs r2, #0 800be84: 619a str r2, [r3, #24] if(HAL_TIM_Base_Init(&htim7) != HAL_OK) { 800be86: 480e ldr r0, [pc, #56] ; (800bec0 ) 800be88: f004 faaa bl 80103e0 800be8c: 4603 mov r3, r0 800be8e: 2b00 cmp r3, #0 800be90: d001 beq.n 800be96 Error_Handler(); 800be92: f7f9 fb81 bl 8005598 } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; 800be96: 2300 movs r3, #0 800be98: 607b str r3, [r7, #4] sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; 800be9a: 2300 movs r3, #0 800be9c: 60fb str r3, [r7, #12] if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) { 800be9e: 1d3b adds r3, r7, #4 800bea0: 4619 mov r1, r3 800bea2: 4807 ldr r0, [pc, #28] ; (800bec0 ) 800bea4: f004 fd54 bl 8010950 800bea8: 4603 mov r3, r0 800beaa: 2b00 cmp r3, #0 800beac: d001 beq.n 800beb2 Error_Handler(); 800beae: f7f9 fb73 bl 8005598 } HAL_TIM_Base_Start_IT(&htim7); 800beb2: 4803 ldr r0, [pc, #12] ; (800bec0 ) 800beb4: f004 faec bl 8010490 } 800beb8: bf00 nop 800beba: 3710 adds r7, #16 800bebc: 46bd mov sp, r7 800bebe: bd80 pop {r7, pc} 800bec0: 2006bc50 .word 0x2006bc50 800bec4: 40001400 .word 0x40001400 0800bec8 : void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { 800bec8: b580 push {r7, lr} 800beca: b086 sub sp, #24 800becc: af00 add r7, sp, #0 800bece: 6078 str r0, [r7, #4] if(tim_baseHandle->Instance == TIM1) 800bed0: 687b ldr r3, [r7, #4] 800bed2: 681b ldr r3, [r3, #0] 800bed4: 4a1f ldr r2, [pc, #124] ; (800bf54 ) 800bed6: 4293 cmp r3, r2 800bed8: d10c bne.n 800bef4 { __HAL_RCC_TIM1_CLK_ENABLE(); 800beda: 4a1f ldr r2, [pc, #124] ; (800bf58 ) 800bedc: 4b1e ldr r3, [pc, #120] ; (800bf58 ) 800bede: 6c5b ldr r3, [r3, #68] ; 0x44 800bee0: f043 0301 orr.w r3, r3, #1 800bee4: 6453 str r3, [r2, #68] ; 0x44 800bee6: 4b1c ldr r3, [pc, #112] ; (800bf58 ) 800bee8: 6c5b ldr r3, [r3, #68] ; 0x44 800beea: f003 0301 and.w r3, r3, #1 800beee: 617b str r3, [r7, #20] 800bef0: 697b ldr r3, [r7, #20] { __HAL_RCC_TIM7_CLK_ENABLE(); HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0); HAL_NVIC_EnableIRQ(TIM7_IRQn); } } 800bef2: e02a b.n 800bf4a if(tim_baseHandle->Instance == TIM5) 800bef4: 687b ldr r3, [r7, #4] 800bef6: 681b ldr r3, [r3, #0] 800bef8: 4a18 ldr r2, [pc, #96] ; (800bf5c ) 800befa: 4293 cmp r3, r2 800befc: d10c bne.n 800bf18 __HAL_RCC_TIM5_CLK_ENABLE(); 800befe: 4a16 ldr r2, [pc, #88] ; (800bf58 ) 800bf00: 4b15 ldr r3, [pc, #84] ; (800bf58 ) 800bf02: 6c1b ldr r3, [r3, #64] ; 0x40 800bf04: f043 0308 orr.w r3, r3, #8 800bf08: 6413 str r3, [r2, #64] ; 0x40 800bf0a: 4b13 ldr r3, [pc, #76] ; (800bf58 ) 800bf0c: 6c1b ldr r3, [r3, #64] ; 0x40 800bf0e: f003 0308 and.w r3, r3, #8 800bf12: 613b str r3, [r7, #16] 800bf14: 693b ldr r3, [r7, #16] } 800bf16: e018 b.n 800bf4a if(tim_baseHandle->Instance == TIM7) 800bf18: 687b ldr r3, [r7, #4] 800bf1a: 681b ldr r3, [r3, #0] 800bf1c: 4a10 ldr r2, [pc, #64] ; (800bf60 ) 800bf1e: 4293 cmp r3, r2 800bf20: d113 bne.n 800bf4a __HAL_RCC_TIM7_CLK_ENABLE(); 800bf22: 4a0d ldr r2, [pc, #52] ; (800bf58 ) 800bf24: 4b0c ldr r3, [pc, #48] ; (800bf58 ) 800bf26: 6c1b ldr r3, [r3, #64] ; 0x40 800bf28: f043 0320 orr.w r3, r3, #32 800bf2c: 6413 str r3, [r2, #64] ; 0x40 800bf2e: 4b0a ldr r3, [pc, #40] ; (800bf58 ) 800bf30: 6c1b ldr r3, [r3, #64] ; 0x40 800bf32: f003 0320 and.w r3, r3, #32 800bf36: 60fb str r3, [r7, #12] 800bf38: 68fb ldr r3, [r7, #12] HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0); 800bf3a: 2200 movs r2, #0 800bf3c: 2103 movs r1, #3 800bf3e: 2037 movs r0, #55 ; 0x37 800bf40: f001 fed9 bl 800dcf6 HAL_NVIC_EnableIRQ(TIM7_IRQn); 800bf44: 2037 movs r0, #55 ; 0x37 800bf46: f001 fef2 bl 800dd2e } 800bf4a: bf00 nop 800bf4c: 3718 adds r7, #24 800bf4e: 46bd mov sp, r7 800bf50: bd80 pop {r7, pc} 800bf52: bf00 nop 800bf54: 40010000 .word 0x40010000 800bf58: 40023800 .word 0x40023800 800bf5c: 40000c00 .word 0x40000c00 800bf60: 40001400 .word 0x40001400 0800bf64 : __IO uint32_t maxtime = 0; /* USER CODE BEGIN 1 */ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { 800bf64: b580 push {r7, lr} 800bf66: b084 sub sp, #16 800bf68: af00 add r7, sp, #0 800bf6a: 6078 str r0, [r7, #4] __IO uint16_t Data32, i; switch((uint32_t) htim->Instance) 800bf6c: 687b ldr r3, [r7, #4] 800bf6e: 681b ldr r3, [r3, #0] 800bf70: 461a mov r2, r3 800bf72: 4b3c ldr r3, [pc, #240] ; (800c064 ) 800bf74: 429a cmp r2, r3 800bf76: d000 beq.n 800bf7a if(repeat) repeat--; break; } } 800bf78: e070 b.n 800c05c __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); 800bf7a: 687b ldr r3, [r7, #4] 800bf7c: 681b ldr r3, [r3, #0] 800bf7e: f06f 0201 mvn.w r2, #1 800bf82: 611a str r2, [r3, #16] if((--timerAsk) == 0) 800bf84: 4b38 ldr r3, [pc, #224] ; (800c068 ) 800bf86: 881b ldrh r3, [r3, #0] 800bf88: b29b uxth r3, r3 800bf8a: 3b01 subs r3, #1 800bf8c: b29b uxth r3, r3 800bf8e: 4a36 ldr r2, [pc, #216] ; (800c068 ) 800bf90: 4619 mov r1, r3 800bf92: 8011 strh r1, [r2, #0] 800bf94: 2b00 cmp r3, #0 800bf96: d105 bne.n 800bfa4 timerAsk = msec1900; 800bf98: 4b33 ldr r3, [pc, #204] ; (800c068 ) 800bf9a: 22be movs r2, #190 ; 0xbe 800bf9c: 801a strh r2, [r3, #0] FlagAsk = true; 800bf9e: 4b33 ldr r3, [pc, #204] ; (800c06c ) 800bfa0: 2201 movs r2, #1 800bfa2: 701a strb r2, [r3, #0] if(timerKeys) 800bfa4: 4b32 ldr r3, [pc, #200] ; (800c070 ) 800bfa6: 881b ldrh r3, [r3, #0] 800bfa8: b29b uxth r3, r3 800bfaa: 2b00 cmp r3, #0 800bfac: d007 beq.n 800bfbe timerKeys--; 800bfae: 4b30 ldr r3, [pc, #192] ; (800c070 ) 800bfb0: 881b ldrh r3, [r3, #0] 800bfb2: b29b uxth r3, r3 800bfb4: 3b01 subs r3, #1 800bfb6: b29a uxth r2, r3 800bfb8: 4b2d ldr r3, [pc, #180] ; (800c070 ) 800bfba: 801a strh r2, [r3, #0] 800bfbc: e00b b.n 800bfd6 timerKeys = 2; 800bfbe: 4b2c ldr r3, [pc, #176] ; (800c070 ) 800bfc0: 2202 movs r2, #2 800bfc2: 801a strh r2, [r3, #0] if(!KEY_STATE) 800bfc4: 4b2b ldr r3, [pc, #172] ; (800c074 ) 800bfc6: 681b ldr r3, [r3, #0] 800bfc8: 2b00 cmp r3, #0 800bfca: d104 bne.n 800bfd6 KEY_STATE = kbhit(); 800bfcc: f7f4 fcca bl 8000964 800bfd0: 4602 mov r2, r0 800bfd2: 4b28 ldr r3, [pc, #160] ; (800c074 ) 800bfd4: 601a str r2, [r3, #0] if(timerRefreshScreen) 800bfd6: 4b28 ldr r3, [pc, #160] ; (800c078 ) 800bfd8: 881b ldrh r3, [r3, #0] 800bfda: b29b uxth r3, r3 800bfdc: 2b00 cmp r3, #0 800bfde: d007 beq.n 800bff0 timerRefreshScreen--; 800bfe0: 4b25 ldr r3, [pc, #148] ; (800c078 ) 800bfe2: 881b ldrh r3, [r3, #0] 800bfe4: b29b uxth r3, r3 800bfe6: 3b01 subs r3, #1 800bfe8: b29a uxth r2, r3 800bfea: 4b23 ldr r3, [pc, #140] ; (800c078 ) 800bfec: 801a strh r2, [r3, #0] 800bfee: e028 b.n 800c042 timerRefreshScreen = MSEC_REFRESH[0]; 800bff0: 220a movs r2, #10 800bff2: 4b21 ldr r3, [pc, #132] ; (800c078 ) 800bff4: 801a strh r2, [r3, #0] Cursorblink ^= 1; 800bff6: 4b21 ldr r3, [pc, #132] ; (800c07c ) 800bff8: 781b ldrb r3, [r3, #0] 800bffa: b2db uxtb r3, r3 800bffc: f083 0301 eor.w r3, r3, #1 800c000: b2da uxtb r2, r3 800c002: 4b1e ldr r3, [pc, #120] ; (800c07c ) 800c004: 701a strb r2, [r3, #0] if(cntblink) 800c006: 4b1e ldr r3, [pc, #120] ; (800c080 ) 800c008: 881b ldrh r3, [r3, #0] 800c00a: b29b uxth r3, r3 800c00c: 2b00 cmp r3, #0 800c00e: d007 beq.n 800c020 cntblink--; 800c010: 4b1b ldr r3, [pc, #108] ; (800c080 ) 800c012: 881b ldrh r3, [r3, #0] 800c014: b29b uxth r3, r3 800c016: 3b01 subs r3, #1 800c018: b29a uxth r2, r3 800c01a: 4b19 ldr r3, [pc, #100] ; (800c080 ) 800c01c: 801a strh r2, [r3, #0] 800c01e: e00d b.n 800c03c cntblink = 2; 800c020: 4b17 ldr r3, [pc, #92] ; (800c080 ) 800c022: 2202 movs r2, #2 800c024: 801a strh r2, [r3, #0] blink ^= 1; 800c026: 4b17 ldr r3, [pc, #92] ; (800c084 ) 800c028: 781b ldrb r3, [r3, #0] 800c02a: b2db uxtb r3, r3 800c02c: f083 0301 eor.w r3, r3, #1 800c030: b2da uxtb r2, r3 800c032: 4b14 ldr r3, [pc, #80] ; (800c084 ) 800c034: 701a strb r2, [r3, #0] cntBat = 1; 800c036: 4b14 ldr r3, [pc, #80] ; (800c088 ) 800c038: 2201 movs r2, #1 800c03a: 701a strb r2, [r3, #0] screen = true; 800c03c: 4b13 ldr r3, [pc, #76] ; (800c08c ) 800c03e: 2201 movs r2, #1 800c040: 701a strb r2, [r3, #0] if(repeat) 800c042: 4b13 ldr r3, [pc, #76] ; (800c090 ) 800c044: 881b ldrh r3, [r3, #0] 800c046: b29b uxth r3, r3 800c048: 2b00 cmp r3, #0 800c04a: d006 beq.n 800c05a repeat--; 800c04c: 4b10 ldr r3, [pc, #64] ; (800c090 ) 800c04e: 881b ldrh r3, [r3, #0] 800c050: b29b uxth r3, r3 800c052: 3b01 subs r3, #1 800c054: b29a uxth r2, r3 800c056: 4b0e ldr r3, [pc, #56] ; (800c090 ) 800c058: 801a strh r2, [r3, #0] break; 800c05a: bf00 nop } 800c05c: bf00 nop 800c05e: 3710 adds r7, #16 800c060: 46bd mov sp, r7 800c062: bd80 pop {r7, pc} 800c064: 40001400 .word 0x40001400 800c068: 2002021e .word 0x2002021e 800c06c: 2006b2ef .word 0x2006b2ef 800c070: 2002021a .word 0x2002021a 800c074: 2002024c .word 0x2002024c 800c078: 2002021c .word 0x2002021c 800c07c: 2006b2ed .word 0x2006b2ed 800c080: 20020218 .word 0x20020218 800c084: 2006b2ec .word 0x2006b2ec 800c088: 2006b2ee .word 0x2006b2ee 800c08c: 2002002c .word 0x2002002c 800c090: 20020246 .word 0x20020246 0800c094 : void MX_UART7_Init(void) { 800c094: b580 push {r7, lr} 800c096: af00 add r7, sp, #0 huart7.Instance = UART7; 800c098: 4b47 ldr r3, [pc, #284] ; (800c1b8 ) 800c09a: 4a48 ldr r2, [pc, #288] ; (800c1bc ) 800c09c: 601a str r2, [r3, #0] huart7.Init.BaudRate = BAUDRATE[pardata.BAUD]; 800c09e: 4b48 ldr r3, [pc, #288] ; (800c1c0 ) 800c0a0: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202 800c0a4: b29b uxth r3, r3 800c0a6: 461a mov r2, r3 800c0a8: 4b46 ldr r3, [pc, #280] ; (800c1c4 ) 800c0aa: f853 3022 ldr.w r3, [r3, r2, lsl #2] 800c0ae: 4a42 ldr r2, [pc, #264] ; (800c1b8 ) 800c0b0: 6053 str r3, [r2, #4] switch(pardata.INFB) 800c0b2: 4b43 ldr r3, [pc, #268] ; (800c1c0 ) 800c0b4: f8b3 3204 ldrh.w r3, [r3, #516] ; 0x204 800c0b8: b29b uxth r3, r3 800c0ba: 2b01 cmp r3, #1 800c0bc: d00a beq.n 800c0d4 800c0be: 2b02 cmp r3, #2 800c0c0: d011 beq.n 800c0e6 800c0c2: 2b00 cmp r3, #0 800c0c4: d118 bne.n 800c0f8 { case 0: //NONE huart7.Init.WordLength = UART_WORDLENGTH_8B; 800c0c6: 4b3c ldr r3, [pc, #240] ; (800c1b8 ) 800c0c8: 2200 movs r2, #0 800c0ca: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_NONE; 800c0cc: 4b3a ldr r3, [pc, #232] ; (800c1b8 ) 800c0ce: 2200 movs r2, #0 800c0d0: 611a str r2, [r3, #16] break; 800c0d2: e011 b.n 800c0f8 case 1: //ODD huart7.Init.WordLength = UART_WORDLENGTH_9B; 800c0d4: 4b38 ldr r3, [pc, #224] ; (800c1b8 ) 800c0d6: f44f 5280 mov.w r2, #4096 ; 0x1000 800c0da: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_ODD; 800c0dc: 4b36 ldr r3, [pc, #216] ; (800c1b8 ) 800c0de: f44f 62c0 mov.w r2, #1536 ; 0x600 800c0e2: 611a str r2, [r3, #16] break; 800c0e4: e008 b.n 800c0f8 case 2: //EVEN huart7.Init.WordLength = UART_WORDLENGTH_9B; 800c0e6: 4b34 ldr r3, [pc, #208] ; (800c1b8 ) 800c0e8: f44f 5280 mov.w r2, #4096 ; 0x1000 800c0ec: 609a str r2, [r3, #8] huart7.Init.Parity = UART_PARITY_EVEN; 800c0ee: 4b32 ldr r3, [pc, #200] ; (800c1b8 ) 800c0f0: f44f 6280 mov.w r2, #1024 ; 0x400 800c0f4: 611a str r2, [r3, #16] break; 800c0f6: bf00 nop } huart7.Init.StopBits = UART_STOPBITS_1; 800c0f8: 4b2f ldr r3, [pc, #188] ; (800c1b8 ) 800c0fa: 2200 movs r2, #0 800c0fc: 60da str r2, [r3, #12] huart7.Init.Mode = UART_MODE_TX_RX; 800c0fe: 4b2e ldr r3, [pc, #184] ; (800c1b8 ) 800c100: 220c movs r2, #12 800c102: 615a str r2, [r3, #20] huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE; 800c104: 4b2c ldr r3, [pc, #176] ; (800c1b8 ) 800c106: 2200 movs r2, #0 800c108: 619a str r2, [r3, #24] if(pardata.BAUD < 9) 800c10a: 4b2d ldr r3, [pc, #180] ; (800c1c0 ) 800c10c: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202 800c110: b29b uxth r3, r3 800c112: 2b08 cmp r3, #8 800c114: d803 bhi.n 800c11e huart7.Init.OverSampling = UART_OVERSAMPLING_16; 800c116: 4b28 ldr r3, [pc, #160] ; (800c1b8 ) 800c118: 2200 movs r2, #0 800c11a: 61da str r2, [r3, #28] 800c11c: e003 b.n 800c126 else huart7.Init.OverSampling = UART_OVERSAMPLING_8; 800c11e: 4b26 ldr r3, [pc, #152] ; (800c1b8 ) 800c120: f44f 4200 mov.w r2, #32768 ; 0x8000 800c124: 61da str r2, [r3, #28] huart7.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; 800c126: 4b24 ldr r3, [pc, #144] ; (800c1b8 ) 800c128: 2200 movs r2, #0 800c12a: 621a str r2, [r3, #32] huart7.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT; 800c12c: 4b22 ldr r3, [pc, #136] ; (800c1b8 ) 800c12e: 2208 movs r2, #8 800c130: 625a str r2, [r3, #36] ; 0x24 huart7.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE; 800c132: 4b21 ldr r3, [pc, #132] ; (800c1b8 ) 800c134: f44f 4200 mov.w r2, #32768 ; 0x8000 800c138: 635a str r2, [r3, #52] ; 0x34 if(HAL_UART_Init(&huart7) != HAL_OK) { 800c13a: 481f ldr r0, [pc, #124] ; (800c1b8 ) 800c13c: f004 fcb4 bl 8010aa8 800c140: 4603 mov r3, r0 800c142: 2b00 cmp r3, #0 800c144: d001 beq.n 800c14a Error_Handler(); 800c146: f7f9 fa27 bl 8005598 } if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800c14a: 4b1b ldr r3, [pc, #108] ; (800c1b8 ) 800c14c: 681b ldr r3, [r3, #0] 800c14e: 69db ldr r3, [r3, #28] 800c150: f003 0308 and.w r3, r3, #8 800c154: 2b08 cmp r3, #8 800c156: d103 bne.n 800c160 __HAL_UART_CLEAR_OREFLAG(&huart7); 800c158: 4b17 ldr r3, [pc, #92] ; (800c1b8 ) 800c15a: 681b ldr r3, [r3, #0] 800c15c: 2208 movs r2, #8 800c15e: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800c160: 4b15 ldr r3, [pc, #84] ; (800c1b8 ) 800c162: 681b ldr r3, [r3, #0] 800c164: 69db ldr r3, [r3, #28] 800c166: f003 0301 and.w r3, r3, #1 800c16a: 2b01 cmp r3, #1 800c16c: d103 bne.n 800c176 __HAL_UART_CLEAR_PEFLAG(&huart7); 800c16e: 4b12 ldr r3, [pc, #72] ; (800c1b8 ) 800c170: 681b ldr r3, [r3, #0] 800c172: 2201 movs r2, #1 800c174: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800c176: 4b10 ldr r3, [pc, #64] ; (800c1b8 ) 800c178: 681b ldr r3, [r3, #0] 800c17a: 69db ldr r3, [r3, #28] 800c17c: f003 0302 and.w r3, r3, #2 800c180: 2b02 cmp r3, #2 800c182: d103 bne.n 800c18c __HAL_UART_CLEAR_FEFLAG(&huart7); 800c184: 4b0c ldr r3, [pc, #48] ; (800c1b8 ) 800c186: 681b ldr r3, [r3, #0] 800c188: 2202 movs r2, #2 800c18a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800c18c: 4b0a ldr r3, [pc, #40] ; (800c1b8 ) 800c18e: 681b ldr r3, [r3, #0] 800c190: 69db ldr r3, [r3, #28] 800c192: f003 0304 and.w r3, r3, #4 800c196: 2b04 cmp r3, #4 800c198: d103 bne.n 800c1a2 __HAL_UART_CLEAR_NEFLAG(&huart7); 800c19a: 4b07 ldr r3, [pc, #28] ; (800c1b8 ) 800c19c: 681b ldr r3, [r3, #0] 800c19e: 2204 movs r2, #4 800c1a0: 621a str r2, [r3, #32] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c1a2: 2200 movs r2, #0 800c1a4: f44f 7100 mov.w r1, #512 ; 0x200 800c1a8: 4807 ldr r0, [pc, #28] ; (800c1c8 ) 800c1aa: f002 fc6d bl 800ea88 HAL_Delay(1); 800c1ae: 2001 movs r0, #1 800c1b0: f001 fc84 bl 800dabc //SET_BIT(huart7.Instance->CR1, /*USART_CR1_RXNEIE |*/ USART_CR1_PEIE); } 800c1b4: bf00 nop 800c1b6: bd80 pop {r7, pc} 800c1b8: 2006bc9c .word 0x2006bc9c 800c1bc: 40007800 .word 0x40007800 800c1c0: 2006b510 .word 0x2006b510 800c1c4: 0801579c .word 0x0801579c 800c1c8: 40021400 .word 0x40021400 0800c1cc : HAL_NVIC_DisableIRQ(UART7_IRQn); } void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) { 800c1cc: b580 push {r7, lr} 800c1ce: b08a sub sp, #40 ; 0x28 800c1d0: af00 add r7, sp, #0 800c1d2: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; 800c1d4: f107 0314 add.w r3, r7, #20 800c1d8: 2200 movs r2, #0 800c1da: 601a str r2, [r3, #0] 800c1dc: 605a str r2, [r3, #4] 800c1de: 609a str r2, [r3, #8] 800c1e0: 60da str r2, [r3, #12] 800c1e2: 611a str r2, [r3, #16] if(uartHandle->Instance==UART7) 800c1e4: 687b ldr r3, [r7, #4] 800c1e6: 681b ldr r3, [r3, #0] 800c1e8: 4a1b ldr r2, [pc, #108] ; (800c258 ) 800c1ea: 4293 cmp r3, r2 800c1ec: d12f bne.n 800c24e { __HAL_RCC_UART7_CLK_ENABLE(); 800c1ee: 4a1b ldr r2, [pc, #108] ; (800c25c ) 800c1f0: 4b1a ldr r3, [pc, #104] ; (800c25c ) 800c1f2: 6c1b ldr r3, [r3, #64] ; 0x40 800c1f4: f043 4380 orr.w r3, r3, #1073741824 ; 0x40000000 800c1f8: 6413 str r3, [r2, #64] ; 0x40 800c1fa: 4b18 ldr r3, [pc, #96] ; (800c25c ) 800c1fc: 6c1b ldr r3, [r3, #64] ; 0x40 800c1fe: f003 4380 and.w r3, r3, #1073741824 ; 0x40000000 800c202: 613b str r3, [r7, #16] 800c204: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOF_CLK_ENABLE(); 800c206: 4a15 ldr r2, [pc, #84] ; (800c25c ) 800c208: 4b14 ldr r3, [pc, #80] ; (800c25c ) 800c20a: 6b1b ldr r3, [r3, #48] ; 0x30 800c20c: f043 0320 orr.w r3, r3, #32 800c210: 6313 str r3, [r2, #48] ; 0x30 800c212: 4b12 ldr r3, [pc, #72] ; (800c25c ) 800c214: 6b1b ldr r3, [r3, #48] ; 0x30 800c216: f003 0320 and.w r3, r3, #32 800c21a: 60fb str r3, [r7, #12] 800c21c: 68fb ldr r3, [r7, #12] /**UART7 GPIO Configuration PF6 ------> UART7_RX PF7 ------> UART7_TX */ GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; 800c21e: 23c0 movs r3, #192 ; 0xc0 800c220: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 800c222: 2302 movs r3, #2 800c224: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; 800c226: 2300 movs r3, #0 800c228: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 800c22a: 2303 movs r3, #3 800c22c: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF8_UART7; 800c22e: 2308 movs r3, #8 800c230: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); 800c232: f107 0314 add.w r3, r7, #20 800c236: 4619 mov r1, r3 800c238: 4809 ldr r0, [pc, #36] ; (800c260 ) 800c23a: f002 fa63 bl 800e704 /* UART7 interrupt Init */ HAL_NVIC_SetPriority(UART7_IRQn, 10, 0); 800c23e: 2200 movs r2, #0 800c240: 210a movs r1, #10 800c242: 2052 movs r0, #82 ; 0x52 800c244: f001 fd57 bl 800dcf6 HAL_NVIC_EnableIRQ(UART7_IRQn); 800c248: 2052 movs r0, #82 ; 0x52 800c24a: f001 fd70 bl 800dd2e } } 800c24e: bf00 nop 800c250: 3728 adds r7, #40 ; 0x28 800c252: 46bd mov sp, r7 800c254: bd80 pop {r7, pc} 800c256: bf00 nop 800c258: 40007800 .word 0x40007800 800c25c: 40023800 .word 0x40023800 800c260: 40021400 .word 0x40021400 0800c264 : } } void UART7_IRQHandler(void) { 800c264: b580 push {r7, lr} 800c266: af00 add r7, sp, #0 if((__HAL_UART_GET_IT_SOURCE(&huart7, UART_IT_RXNE)) && (__HAL_UART_GET_FLAG(&huart7, UART_FLAG_RXNE))) 800c268: 4b26 ldr r3, [pc, #152] ; (800c304 ) 800c26a: 681b ldr r3, [r3, #0] 800c26c: 681b ldr r3, [r3, #0] 800c26e: f003 0320 and.w r3, r3, #32 800c272: 2b00 cmp r3, #0 800c274: d00a beq.n 800c28c 800c276: 4b23 ldr r3, [pc, #140] ; (800c304 ) 800c278: 681b ldr r3, [r3, #0] 800c27a: 69db ldr r3, [r3, #28] 800c27c: f003 0320 and.w r3, r3, #32 800c280: 2b20 cmp r3, #32 800c282: d103 bne.n 800c28c { HAL_UART_RxCpltCallback(&huart7); 800c284: 481f ldr r0, [pc, #124] ; (800c304 ) 800c286: f000 f8ad bl 800c3e4 800c28a: e002 b.n 800c292 } else { HAL_UART_IRQHandler(&huart7); 800c28c: 481d ldr r0, [pc, #116] ; (800c304 ) 800c28e: f004 febd bl 801100c } if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800c292: 4b1c ldr r3, [pc, #112] ; (800c304 ) 800c294: 681b ldr r3, [r3, #0] 800c296: 69db ldr r3, [r3, #28] 800c298: f003 0308 and.w r3, r3, #8 800c29c: 2b08 cmp r3, #8 800c29e: d103 bne.n 800c2a8 __HAL_UART_CLEAR_OREFLAG(&huart7); 800c2a0: 4b18 ldr r3, [pc, #96] ; (800c304 ) 800c2a2: 681b ldr r3, [r3, #0] 800c2a4: 2208 movs r2, #8 800c2a6: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800c2a8: 4b16 ldr r3, [pc, #88] ; (800c304 ) 800c2aa: 681b ldr r3, [r3, #0] 800c2ac: 69db ldr r3, [r3, #28] 800c2ae: f003 0301 and.w r3, r3, #1 800c2b2: 2b01 cmp r3, #1 800c2b4: d103 bne.n 800c2be __HAL_UART_CLEAR_PEFLAG(&huart7); 800c2b6: 4b13 ldr r3, [pc, #76] ; (800c304 ) 800c2b8: 681b ldr r3, [r3, #0] 800c2ba: 2201 movs r2, #1 800c2bc: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800c2be: 4b11 ldr r3, [pc, #68] ; (800c304 ) 800c2c0: 681b ldr r3, [r3, #0] 800c2c2: 69db ldr r3, [r3, #28] 800c2c4: f003 0302 and.w r3, r3, #2 800c2c8: 2b02 cmp r3, #2 800c2ca: d103 bne.n 800c2d4 __HAL_UART_CLEAR_FEFLAG(&huart7); 800c2cc: 4b0d ldr r3, [pc, #52] ; (800c304 ) 800c2ce: 681b ldr r3, [r3, #0] 800c2d0: 2202 movs r2, #2 800c2d2: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800c2d4: 4b0b ldr r3, [pc, #44] ; (800c304 ) 800c2d6: 681b ldr r3, [r3, #0] 800c2d8: 69db ldr r3, [r3, #28] 800c2da: f003 0304 and.w r3, r3, #4 800c2de: 2b04 cmp r3, #4 800c2e0: d103 bne.n 800c2ea __HAL_UART_CLEAR_NEFLAG(&huart7); 800c2e2: 4b08 ldr r3, [pc, #32] ; (800c304 ) 800c2e4: 681b ldr r3, [r3, #0] 800c2e6: 2204 movs r2, #4 800c2e8: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_IDLE)) 800c2ea: 4b06 ldr r3, [pc, #24] ; (800c304 ) 800c2ec: 681b ldr r3, [r3, #0] 800c2ee: 69db ldr r3, [r3, #28] 800c2f0: f003 0310 and.w r3, r3, #16 800c2f4: 2b10 cmp r3, #16 800c2f6: d103 bne.n 800c300 __HAL_UART_CLEAR_IDLEFLAG(&huart7); 800c2f8: 4b02 ldr r3, [pc, #8] ; (800c304 ) 800c2fa: 681b ldr r3, [r3, #0] 800c2fc: 2210 movs r2, #16 800c2fe: 621a str r2, [r3, #32] } 800c300: bf00 nop 800c302: bd80 pop {r7, pc} 800c304: 2006bc9c .word 0x2006bc9c 0800c308 : uint16_t Crc16(uint16_t len) { 800c308: b480 push {r7} 800c30a: b085 sub sp, #20 800c30c: af00 add r7, sp, #0 800c30e: 4603 mov r3, r0 800c310: 80fb strh r3, [r7, #6] uint16_t i; uint16_t crc = 0xFFFF; 800c312: f64f 73ff movw r3, #65535 ; 0xffff 800c316: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800c318: 2300 movs r3, #0 800c31a: 81fb strh r3, [r7, #14] 800c31c: e010 b.n 800c340 crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ iobuf[i]]; 800c31e: 89bb ldrh r3, [r7, #12] 800c320: 0a1b lsrs r3, r3, #8 800c322: b29a uxth r2, r3 800c324: 89bb ldrh r3, [r7, #12] 800c326: b2db uxtb r3, r3 800c328: 89f9 ldrh r1, [r7, #14] 800c32a: 480b ldr r0, [pc, #44] ; (800c358 ) 800c32c: 5c41 ldrb r1, [r0, r1] 800c32e: 404b eors r3, r1 800c330: 490a ldr r1, [pc, #40] ; (800c35c ) 800c332: f831 3013 ldrh.w r3, [r1, r3, lsl #1] 800c336: 4053 eors r3, r2 800c338: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800c33a: 89fb ldrh r3, [r7, #14] 800c33c: 3301 adds r3, #1 800c33e: 81fb strh r3, [r7, #14] 800c340: 89fa ldrh r2, [r7, #14] 800c342: 88fb ldrh r3, [r7, #6] 800c344: 429a cmp r2, r3 800c346: d3ea bcc.n 800c31e } return crc; 800c348: 89bb ldrh r3, [r7, #12] } 800c34a: 4618 mov r0, r3 800c34c: 3714 adds r7, #20 800c34e: 46bd mov sp, r7 800c350: f85d 7b04 ldr.w r7, [sp], #4 800c354: 4770 bx lr 800c356: bf00 nop 800c358: 2006be2c .word 0x2006be2c 800c35c: 0801559c .word 0x0801559c 0800c360 : uint16_t Crc16_RX(uint16_t len) { 800c360: b480 push {r7} 800c362: b085 sub sp, #20 800c364: af00 add r7, sp, #0 800c366: 4603 mov r3, r0 800c368: 80fb strh r3, [r7, #6] uint16_t i; uint16_t crc = 0xFFFF; 800c36a: f64f 73ff movw r3, #65535 ; 0xffff 800c36e: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800c370: 2300 movs r3, #0 800c372: 81fb strh r3, [r7, #14] 800c374: e010 b.n 800c398 crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ rx[i]]; 800c376: 89bb ldrh r3, [r7, #12] 800c378: 0a1b lsrs r3, r3, #8 800c37a: b29a uxth r2, r3 800c37c: 89bb ldrh r3, [r7, #12] 800c37e: b2db uxtb r3, r3 800c380: 89f9 ldrh r1, [r7, #14] 800c382: 480b ldr r0, [pc, #44] ; (800c3b0 ) 800c384: 5c41 ldrb r1, [r0, r1] 800c386: 404b eors r3, r1 800c388: 490a ldr r1, [pc, #40] ; (800c3b4 ) 800c38a: f831 3013 ldrh.w r3, [r1, r3, lsl #1] 800c38e: 4053 eors r3, r2 800c390: 81bb strh r3, [r7, #12] for(i = 0; i < len; i++) { 800c392: 89fb ldrh r3, [r7, #14] 800c394: 3301 adds r3, #1 800c396: 81fb strh r3, [r7, #14] 800c398: 89fa ldrh r2, [r7, #14] 800c39a: 88fb ldrh r3, [r7, #6] 800c39c: 429a cmp r2, r3 800c39e: d3ea bcc.n 800c376 } return crc; 800c3a0: 89bb ldrh r3, [r7, #12] } 800c3a2: 4618 mov r0, r3 800c3a4: 3714 adds r7, #20 800c3a6: 46bd mov sp, r7 800c3a8: f85d 7b04 ldr.w r7, [sp], #4 800c3ac: 4770 bx lr 800c3ae: bf00 nop 800c3b0: 2006bd24 .word 0x2006bd24 800c3b4: 0801559c .word 0x0801559c 0800c3b8 : void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { 800c3b8: b580 push {r7, lr} 800c3ba: b082 sub sp, #8 800c3bc: af00 add r7, sp, #0 800c3be: 6078 str r0, [r7, #4] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c3c0: 2200 movs r2, #0 800c3c2: f44f 7100 mov.w r1, #512 ; 0x200 800c3c6: 4805 ldr r0, [pc, #20] ; (800c3dc ) 800c3c8: f002 fb5e bl 800ea88 TX_OK = true; 800c3cc: 4b04 ldr r3, [pc, #16] ; (800c3e0 ) 800c3ce: 2201 movs r2, #1 800c3d0: 701a strb r2, [r3, #0] } 800c3d2: bf00 nop 800c3d4: 3708 adds r7, #8 800c3d6: 46bd mov sp, r7 800c3d8: bd80 pop {r7, pc} 800c3da: bf00 nop 800c3dc: 40021400 .word 0x40021400 800c3e0: 2006b2fa .word 0x2006b2fa 0800c3e4 : void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { 800c3e4: b480 push {r7} 800c3e6: b083 sub sp, #12 800c3e8: af00 add r7, sp, #0 800c3ea: 6078 str r0, [r7, #4] RX_OK = true; 800c3ec: 4b04 ldr r3, [pc, #16] ; (800c400 ) 800c3ee: 2201 movs r2, #1 800c3f0: 701a strb r2, [r3, #0] } 800c3f2: bf00 nop 800c3f4: 370c adds r7, #12 800c3f6: 46bd mov sp, r7 800c3f8: f85d 7b04 ldr.w r7, [sp], #4 800c3fc: 4770 bx lr 800c3fe: bf00 nop 800c400: 2006b2fb .word 0x2006b2fb 0800c404 : void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { 800c404: b580 push {r7, lr} 800c406: b082 sub sp, #8 800c408: af00 add r7, sp, #0 800c40a: 6078 str r0, [r7, #4] RX_OK = TX_OK = false; 800c40c: 2100 movs r1, #0 800c40e: 4b0b ldr r3, [pc, #44] ; (800c43c ) 800c410: 460a mov r2, r1 800c412: 701a strb r2, [r3, #0] 800c414: 4b0a ldr r3, [pc, #40] ; (800c440 ) 800c416: 460a mov r2, r1 800c418: 701a strb r2, [r3, #0] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c41a: 2200 movs r2, #0 800c41c: f44f 7100 mov.w r1, #512 ; 0x200 800c420: 4808 ldr r0, [pc, #32] ; (800c444 ) 800c422: f002 fb31 bl 800ea88 HAL_UART_Abort_IT(&huart7); 800c426: 4808 ldr r0, [pc, #32] ; (800c448 ) 800c428: f004 fcca bl 8010dc0 UART_ERROR = true; 800c42c: 4b07 ldr r3, [pc, #28] ; (800c44c ) 800c42e: 2201 movs r2, #1 800c430: 701a strb r2, [r3, #0] } 800c432: bf00 nop 800c434: 3708 adds r7, #8 800c436: 46bd mov sp, r7 800c438: bd80 pop {r7, pc} 800c43a: bf00 nop 800c43c: 2006b2fa .word 0x2006b2fa 800c440: 2006b2fb .word 0x2006b2fb 800c444: 40021400 .word 0x40021400 800c448: 2006bc9c .word 0x2006bc9c 800c44c: 2006b2f9 .word 0x2006b2f9 0800c450 : //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// int8_t ReadIP(void) { 800c450: b580 push {r7, lr} 800c452: b084 sub sp, #16 800c454: af00 add r7, sp, #0 int8_t res = -1; 800c456: 23ff movs r3, #255 ; 0xff 800c458: 73fb strb r3, [r7, #15] uint16_t i, len = 0, cnt = 0; 800c45a: 2300 movs r3, #0 800c45c: 81bb strh r3, [r7, #12] 800c45e: 2300 movs r3, #0 800c460: 817b strh r3, [r7, #10] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800c462: 4b82 ldr r3, [pc, #520] ; (800c66c ) 800c464: 681b ldr r3, [r3, #0] 800c466: 69db ldr r3, [r3, #28] 800c468: f003 0308 and.w r3, r3, #8 800c46c: 2b08 cmp r3, #8 800c46e: d103 bne.n 800c478 __HAL_UART_CLEAR_OREFLAG(&huart7); 800c470: 4b7e ldr r3, [pc, #504] ; (800c66c ) 800c472: 681b ldr r3, [r3, #0] 800c474: 2208 movs r2, #8 800c476: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800c478: 4b7c ldr r3, [pc, #496] ; (800c66c ) 800c47a: 681b ldr r3, [r3, #0] 800c47c: 69db ldr r3, [r3, #28] 800c47e: f003 0301 and.w r3, r3, #1 800c482: 2b01 cmp r3, #1 800c484: d103 bne.n 800c48e __HAL_UART_CLEAR_PEFLAG(&huart7); 800c486: 4b79 ldr r3, [pc, #484] ; (800c66c ) 800c488: 681b ldr r3, [r3, #0] 800c48a: 2201 movs r2, #1 800c48c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800c48e: 4b77 ldr r3, [pc, #476] ; (800c66c ) 800c490: 681b ldr r3, [r3, #0] 800c492: 69db ldr r3, [r3, #28] 800c494: f003 0302 and.w r3, r3, #2 800c498: 2b02 cmp r3, #2 800c49a: d103 bne.n 800c4a4 __HAL_UART_CLEAR_FEFLAG(&huart7); 800c49c: 4b73 ldr r3, [pc, #460] ; (800c66c ) 800c49e: 681b ldr r3, [r3, #0] 800c4a0: 2202 movs r2, #2 800c4a2: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800c4a4: 4b71 ldr r3, [pc, #452] ; (800c66c ) 800c4a6: 681b ldr r3, [r3, #0] 800c4a8: 69db ldr r3, [r3, #28] 800c4aa: f003 0304 and.w r3, r3, #4 800c4ae: 2b04 cmp r3, #4 800c4b0: d103 bne.n 800c4ba __HAL_UART_CLEAR_NEFLAG(&huart7); 800c4b2: 4b6e ldr r3, [pc, #440] ; (800c66c ) 800c4b4: 681b ldr r3, [r3, #0] 800c4b6: 2204 movs r2, #4 800c4b8: 621a str r2, [r3, #32] HAL_Delay(20); 800c4ba: 2014 movs r0, #20 800c4bc: f001 fafe bl 800dabc TX_OK = RX_OK = UART_ERROR = false; 800c4c0: 2200 movs r2, #0 800c4c2: 4b6b ldr r3, [pc, #428] ; (800c670 ) 800c4c4: 4611 mov r1, r2 800c4c6: 7019 strb r1, [r3, #0] 800c4c8: 4b6a ldr r3, [pc, #424] ; (800c674 ) 800c4ca: 4611 mov r1, r2 800c4cc: 7019 strb r1, [r3, #0] 800c4ce: 4b6a ldr r3, [pc, #424] ; (800c678 ) 800c4d0: 701a strb r2, [r3, #0] len = 0; 800c4d2: 2300 movs r3, #0 800c4d4: 81bb strh r3, [r7, #12] memset((void *) &rx, 0, sizeof(rx)); 800c4d6: f44f 7280 mov.w r2, #256 ; 0x100 800c4da: 2100 movs r1, #0 800c4dc: 4867 ldr r0, [pc, #412] ; (800c67c ) 800c4de: f005 ff1a bl 8012316 iobuf[len++] = 17; 800c4e2: 89bb ldrh r3, [r7, #12] 800c4e4: 1c5a adds r2, r3, #1 800c4e6: 81ba strh r2, [r7, #12] 800c4e8: 461a mov r2, r3 800c4ea: 4b65 ldr r3, [pc, #404] ; (800c680 ) 800c4ec: 2111 movs r1, #17 800c4ee: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 800c4f0: 89bb ldrh r3, [r7, #12] 800c4f2: 1c5a adds r2, r3, #1 800c4f4: 81ba strh r2, [r7, #12] 800c4f6: 461a mov r2, r3 800c4f8: 4b61 ldr r3, [pc, #388] ; (800c680 ) 800c4fa: 2103 movs r1, #3 800c4fc: 5499 strb r1, [r3, r2] iobuf[len++] = HI(4001); 800c4fe: 89bb ldrh r3, [r7, #12] 800c500: 1c5a adds r2, r3, #1 800c502: 81ba strh r2, [r7, #12] 800c504: 461a mov r2, r3 800c506: 4b5e ldr r3, [pc, #376] ; (800c680 ) 800c508: 210f movs r1, #15 800c50a: 5499 strb r1, [r3, r2] iobuf[len++] = LO(4001); 800c50c: 89bb ldrh r3, [r7, #12] 800c50e: 1c5a adds r2, r3, #1 800c510: 81ba strh r2, [r7, #12] 800c512: 461a mov r2, r3 800c514: 4b5a ldr r3, [pc, #360] ; (800c680 ) 800c516: 21a1 movs r1, #161 ; 0xa1 800c518: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 800c51a: 89bb ldrh r3, [r7, #12] 800c51c: 1c5a adds r2, r3, #1 800c51e: 81ba strh r2, [r7, #12] 800c520: 461a mov r2, r3 800c522: 4b57 ldr r3, [pc, #348] ; (800c680 ) 800c524: 2100 movs r1, #0 800c526: 5499 strb r1, [r3, r2] iobuf[len++] = 2; // 800c528: 89bb ldrh r3, [r7, #12] 800c52a: 1c5a adds r2, r3, #1 800c52c: 81ba strh r2, [r7, #12] 800c52e: 461a mov r2, r3 800c530: 4b53 ldr r3, [pc, #332] ; (800c680 ) 800c532: 2102 movs r1, #2 800c534: 5499 strb r1, [r3, r2] crc = Crc16(len); 800c536: 89bb ldrh r3, [r7, #12] 800c538: 4618 mov r0, r3 800c53a: f7ff fee5 bl 800c308 800c53e: 4603 mov r3, r0 800c540: 813b strh r3, [r7, #8] iobuf[len++] = LO(crc); 800c542: 89bb ldrh r3, [r7, #12] 800c544: 1c5a adds r2, r3, #1 800c546: 81ba strh r2, [r7, #12] 800c548: 461a mov r2, r3 800c54a: 893b ldrh r3, [r7, #8] 800c54c: b2d9 uxtb r1, r3 800c54e: 4b4c ldr r3, [pc, #304] ; (800c680 ) 800c550: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 800c552: 89bb ldrh r3, [r7, #12] 800c554: 1c5a adds r2, r3, #1 800c556: 81ba strh r2, [r7, #12] 800c558: 461a mov r2, r3 800c55a: 893b ldrh r3, [r7, #8] 800c55c: 0a1b lsrs r3, r3, #8 800c55e: b29b uxth r3, r3 800c560: b2d9 uxtb r1, r3 800c562: 4b47 ldr r3, [pc, #284] ; (800c680 ) 800c564: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 800c566: f001 fa9d bl 800daa4 800c56a: 4603 mov r3, r0 800c56c: 607b str r3, [r7, #4] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 800c56e: 2201 movs r2, #1 800c570: f44f 7100 mov.w r1, #512 ; 0x200 800c574: 4843 ldr r0, [pc, #268] ; (800c684 ) 800c576: f002 fa87 bl 800ea88 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 800c57a: 89bb ldrh r3, [r7, #12] 800c57c: 461a mov r2, r3 800c57e: 4940 ldr r1, [pc, #256] ; (800c680 ) 800c580: 483a ldr r0, [pc, #232] ; (800c66c ) 800c582: f004 fbaf bl 8010ce4 800c586: 4603 mov r3, r0 800c588: 2b00 cmp r3, #0 800c58a: d168 bne.n 800c65e { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 800c58c: bf00 nop 800c58e: 4b3a ldr r3, [pc, #232] ; (800c678 ) 800c590: 781b ldrb r3, [r3, #0] 800c592: b2db uxtb r3, r3 800c594: f083 0301 eor.w r3, r3, #1 800c598: b2db uxtb r3, r3 800c59a: 2b00 cmp r3, #0 800c59c: d006 beq.n 800c5ac 800c59e: f001 fa81 bl 800daa4 800c5a2: 4602 mov r2, r0 800c5a4: 687b ldr r3, [r7, #4] 800c5a6: 1ad3 subs r3, r2, r3 800c5a8: 2b31 cmp r3, #49 ; 0x31 800c5aa: d9f0 bls.n 800c58e if(!TX_OK) 800c5ac: 4b32 ldr r3, [pc, #200] ; (800c678 ) 800c5ae: 781b ldrb r3, [r3, #0] 800c5b0: b2db uxtb r3, r3 800c5b2: f083 0301 eor.w r3, r3, #1 800c5b6: b2db uxtb r3, r3 800c5b8: 2b00 cmp r3, #0 800c5ba: d00b beq.n 800c5d4 { HAL_UART_Abort_IT(&huart7); 800c5bc: 482b ldr r0, [pc, #172] ; (800c66c ) 800c5be: f004 fbff bl 8010dc0 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c5c2: 2200 movs r2, #0 800c5c4: f44f 7100 mov.w r1, #512 ; 0x200 800c5c8: 482e ldr r0, [pc, #184] ; (800c684 ) 800c5ca: f002 fa5d bl 800ea88 return (-1); 800c5ce: f04f 33ff mov.w r3, #4294967295 800c5d2: e046 b.n 800c662 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c5d4: 2200 movs r2, #0 800c5d6: f44f 7100 mov.w r1, #512 ; 0x200 800c5da: 482a ldr r0, [pc, #168] ; (800c684 ) 800c5dc: f002 fa54 bl 800ea88 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 800c5e0: 2364 movs r3, #100 ; 0x64 800c5e2: 2201 movs r2, #1 800c5e4: 4925 ldr r1, [pc, #148] ; (800c67c ) 800c5e6: 4821 ldr r0, [pc, #132] ; (800c66c ) 800c5e8: f004 faac bl 8010b44 if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK) 800c5ec: 2364 movs r3, #100 ; 0x64 800c5ee: 2209 movs r2, #9 800c5f0: 4922 ldr r1, [pc, #136] ; (800c67c ) 800c5f2: 481e ldr r0, [pc, #120] ; (800c66c ) 800c5f4: f004 faa6 bl 8010b44 800c5f8: 4603 mov r3, r0 800c5fa: 2b00 cmp r3, #0 800c5fc: d126 bne.n 800c64c { crc = (uint16_t) ((rx[8]) << 8 | rx[7]); 800c5fe: 4b1f ldr r3, [pc, #124] ; (800c67c ) 800c600: 7a1b ldrb r3, [r3, #8] 800c602: 021b lsls r3, r3, #8 800c604: b21a sxth r2, r3 800c606: 4b1d ldr r3, [pc, #116] ; (800c67c ) 800c608: 79db ldrb r3, [r3, #7] 800c60a: b21b sxth r3, r3 800c60c: 4313 orrs r3, r2 800c60e: b21b sxth r3, r3 800c610: 813b strh r3, [r7, #8] if(crc == Crc16_RX(7)) 800c612: 2007 movs r0, #7 800c614: f7ff fea4 bl 800c360 800c618: 4603 mov r3, r0 800c61a: 461a mov r2, r3 800c61c: 893b ldrh r3, [r7, #8] 800c61e: 4293 cmp r3, r2 800c620: d111 bne.n 800c646 { ip[0] = rx[3]; 800c622: 4b16 ldr r3, [pc, #88] ; (800c67c ) 800c624: 78da ldrb r2, [r3, #3] 800c626: 4b18 ldr r3, [pc, #96] ; (800c688 ) 800c628: 701a strb r2, [r3, #0] ip[1] = rx[4]; 800c62a: 4b14 ldr r3, [pc, #80] ; (800c67c ) 800c62c: 791a ldrb r2, [r3, #4] 800c62e: 4b16 ldr r3, [pc, #88] ; (800c688 ) 800c630: 705a strb r2, [r3, #1] ip[2] = rx[5]; 800c632: 4b12 ldr r3, [pc, #72] ; (800c67c ) 800c634: 795a ldrb r2, [r3, #5] 800c636: 4b14 ldr r3, [pc, #80] ; (800c688 ) 800c638: 709a strb r2, [r3, #2] ip[3] = rx[6]; 800c63a: 4b10 ldr r3, [pc, #64] ; (800c67c ) 800c63c: 799a ldrb r2, [r3, #6] 800c63e: 4b12 ldr r3, [pc, #72] ; (800c688 ) 800c640: 70da strb r2, [r3, #3] return 0; 800c642: 2300 movs r3, #0 800c644: e00d b.n 800c662 } else { return (-1); 800c646: f04f 33ff mov.w r3, #4294967295 800c64a: e00a b.n 800c662 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c64c: 2200 movs r2, #0 800c64e: f44f 7100 mov.w r1, #512 ; 0x200 800c652: 480c ldr r0, [pc, #48] ; (800c684 ) 800c654: f002 fa18 bl 800ea88 return (-1); 800c658: f04f 33ff mov.w r3, #4294967295 800c65c: e001 b.n 800c662 } } return res; 800c65e: f997 300f ldrsb.w r3, [r7, #15] } 800c662: 4618 mov r0, r3 800c664: 3710 adds r7, #16 800c666: 46bd mov sp, r7 800c668: bd80 pop {r7, pc} 800c66a: bf00 nop 800c66c: 2006bc9c .word 0x2006bc9c 800c670: 2006b2f9 .word 0x2006b2f9 800c674: 2006b2fb .word 0x2006b2fb 800c678: 2006b2fa .word 0x2006b2fa 800c67c: 2006bd24 .word 0x2006bd24 800c680: 2006be2c .word 0x2006be2c 800c684: 40021400 .word 0x40021400 800c688: 2006b2f4 .word 0x2006b2f4 0800c68c : int8_t ReadChannel(uint8_t ch) { 800c68c: b580 push {r7, lr} 800c68e: b086 sub sp, #24 800c690: af00 add r7, sp, #0 800c692: 4603 mov r3, r0 800c694: 71fb strb r3, [r7, #7] int8_t res = -1; 800c696: 23ff movs r3, #255 ; 0xff 800c698: 75fb strb r3, [r7, #23] uint16_t i, len = 0, cnt = 0; 800c69a: 2300 movs r3, #0 800c69c: 82bb strh r3, [r7, #20] 800c69e: 2300 movs r3, #0 800c6a0: 827b strh r3, [r7, #18] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800c6a2: 4b5e ldr r3, [pc, #376] ; (800c81c ) 800c6a4: 681b ldr r3, [r3, #0] 800c6a6: 69db ldr r3, [r3, #28] 800c6a8: f003 0308 and.w r3, r3, #8 800c6ac: 2b08 cmp r3, #8 800c6ae: d103 bne.n 800c6b8 __HAL_UART_CLEAR_OREFLAG(&huart7); 800c6b0: 4b5a ldr r3, [pc, #360] ; (800c81c ) 800c6b2: 681b ldr r3, [r3, #0] 800c6b4: 2208 movs r2, #8 800c6b6: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800c6b8: 4b58 ldr r3, [pc, #352] ; (800c81c ) 800c6ba: 681b ldr r3, [r3, #0] 800c6bc: 69db ldr r3, [r3, #28] 800c6be: f003 0301 and.w r3, r3, #1 800c6c2: 2b01 cmp r3, #1 800c6c4: d103 bne.n 800c6ce __HAL_UART_CLEAR_PEFLAG(&huart7); 800c6c6: 4b55 ldr r3, [pc, #340] ; (800c81c ) 800c6c8: 681b ldr r3, [r3, #0] 800c6ca: 2201 movs r2, #1 800c6cc: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800c6ce: 4b53 ldr r3, [pc, #332] ; (800c81c ) 800c6d0: 681b ldr r3, [r3, #0] 800c6d2: 69db ldr r3, [r3, #28] 800c6d4: f003 0302 and.w r3, r3, #2 800c6d8: 2b02 cmp r3, #2 800c6da: d103 bne.n 800c6e4 __HAL_UART_CLEAR_FEFLAG(&huart7); 800c6dc: 4b4f ldr r3, [pc, #316] ; (800c81c ) 800c6de: 681b ldr r3, [r3, #0] 800c6e0: 2202 movs r2, #2 800c6e2: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800c6e4: 4b4d ldr r3, [pc, #308] ; (800c81c ) 800c6e6: 681b ldr r3, [r3, #0] 800c6e8: 69db ldr r3, [r3, #28] 800c6ea: f003 0304 and.w r3, r3, #4 800c6ee: 2b04 cmp r3, #4 800c6f0: d103 bne.n 800c6fa __HAL_UART_CLEAR_NEFLAG(&huart7); 800c6f2: 4b4a ldr r3, [pc, #296] ; (800c81c ) 800c6f4: 681b ldr r3, [r3, #0] 800c6f6: 2204 movs r2, #4 800c6f8: 621a str r2, [r3, #32] HAL_Delay(20); 800c6fa: 2014 movs r0, #20 800c6fc: f001 f9de bl 800dabc TX_OK = RX_OK = UART_ERROR = false; 800c700: 2200 movs r2, #0 800c702: 4b47 ldr r3, [pc, #284] ; (800c820 ) 800c704: 4611 mov r1, r2 800c706: 7019 strb r1, [r3, #0] 800c708: 4b46 ldr r3, [pc, #280] ; (800c824 ) 800c70a: 4611 mov r1, r2 800c70c: 7019 strb r1, [r3, #0] 800c70e: 4b46 ldr r3, [pc, #280] ; (800c828 ) 800c710: 701a strb r2, [r3, #0] len = 0; 800c712: 2300 movs r3, #0 800c714: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 800c716: f44f 7280 mov.w r2, #256 ; 0x100 800c71a: 2100 movs r1, #0 800c71c: 4843 ldr r0, [pc, #268] ; (800c82c ) 800c71e: f005 fdfa bl 8012316 iobuf[len++] = ch + 1; 800c722: 8abb ldrh r3, [r7, #20] 800c724: 1c5a adds r2, r3, #1 800c726: 82ba strh r2, [r7, #20] 800c728: 461a mov r2, r3 800c72a: 79fb ldrb r3, [r7, #7] 800c72c: 3301 adds r3, #1 800c72e: b2d9 uxtb r1, r3 800c730: 4b3f ldr r3, [pc, #252] ; (800c830 ) 800c732: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 800c734: 8abb ldrh r3, [r7, #20] 800c736: 1c5a adds r2, r3, #1 800c738: 82ba strh r2, [r7, #20] 800c73a: 461a mov r2, r3 800c73c: 4b3c ldr r3, [pc, #240] ; (800c830 ) 800c73e: 2103 movs r1, #3 800c740: 5499 strb r1, [r3, r2] iobuf[len++] = HI(5001); 800c742: 8abb ldrh r3, [r7, #20] 800c744: 1c5a adds r2, r3, #1 800c746: 82ba strh r2, [r7, #20] 800c748: 461a mov r2, r3 800c74a: 4b39 ldr r3, [pc, #228] ; (800c830 ) 800c74c: 2113 movs r1, #19 800c74e: 5499 strb r1, [r3, r2] iobuf[len++] = LO(5001); 800c750: 8abb ldrh r3, [r7, #20] 800c752: 1c5a adds r2, r3, #1 800c754: 82ba strh r2, [r7, #20] 800c756: 461a mov r2, r3 800c758: 4b35 ldr r3, [pc, #212] ; (800c830 ) 800c75a: 2189 movs r1, #137 ; 0x89 800c75c: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 800c75e: 8abb ldrh r3, [r7, #20] 800c760: 1c5a adds r2, r3, #1 800c762: 82ba strh r2, [r7, #20] 800c764: 461a mov r2, r3 800c766: 4b32 ldr r3, [pc, #200] ; (800c830 ) 800c768: 2100 movs r1, #0 800c76a: 5499 strb r1, [r3, r2] iobuf[len++] = 10; // IIN,IFV,IFN,IKU,IKE,IKD,IKS 800c76c: 8abb ldrh r3, [r7, #20] 800c76e: 1c5a adds r2, r3, #1 800c770: 82ba strh r2, [r7, #20] 800c772: 461a mov r2, r3 800c774: 4b2e ldr r3, [pc, #184] ; (800c830 ) 800c776: 210a movs r1, #10 800c778: 5499 strb r1, [r3, r2] crc = Crc16(len); 800c77a: 8abb ldrh r3, [r7, #20] 800c77c: 4618 mov r0, r3 800c77e: f7ff fdc3 bl 800c308 800c782: 4603 mov r3, r0 800c784: 823b strh r3, [r7, #16] iobuf[len++] = LO(crc); 800c786: 8abb ldrh r3, [r7, #20] 800c788: 1c5a adds r2, r3, #1 800c78a: 82ba strh r2, [r7, #20] 800c78c: 461a mov r2, r3 800c78e: 8a3b ldrh r3, [r7, #16] 800c790: b2d9 uxtb r1, r3 800c792: 4b27 ldr r3, [pc, #156] ; (800c830 ) 800c794: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 800c796: 8abb ldrh r3, [r7, #20] 800c798: 1c5a adds r2, r3, #1 800c79a: 82ba strh r2, [r7, #20] 800c79c: 461a mov r2, r3 800c79e: 8a3b ldrh r3, [r7, #16] 800c7a0: 0a1b lsrs r3, r3, #8 800c7a2: b29b uxth r3, r3 800c7a4: b2d9 uxtb r1, r3 800c7a6: 4b22 ldr r3, [pc, #136] ; (800c830 ) 800c7a8: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 800c7aa: f001 f97b bl 800daa4 800c7ae: 4603 mov r3, r0 800c7b0: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 800c7b2: 2201 movs r2, #1 800c7b4: f44f 7100 mov.w r1, #512 ; 0x200 800c7b8: 481e ldr r0, [pc, #120] ; (800c834 ) 800c7ba: f002 f965 bl 800ea88 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 800c7be: 8abb ldrh r3, [r7, #20] 800c7c0: 461a mov r2, r3 800c7c2: 491b ldr r1, [pc, #108] ; (800c830 ) 800c7c4: 4815 ldr r0, [pc, #84] ; (800c81c ) 800c7c6: f004 fa8d bl 8010ce4 800c7ca: 4603 mov r3, r0 800c7cc: 2b00 cmp r3, #0 800c7ce: f040 8113 bne.w 800c9f8 { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 800c7d2: bf00 nop 800c7d4: 4b14 ldr r3, [pc, #80] ; (800c828 ) 800c7d6: 781b ldrb r3, [r3, #0] 800c7d8: b2db uxtb r3, r3 800c7da: f083 0301 eor.w r3, r3, #1 800c7de: b2db uxtb r3, r3 800c7e0: 2b00 cmp r3, #0 800c7e2: d006 beq.n 800c7f2 800c7e4: f001 f95e bl 800daa4 800c7e8: 4602 mov r2, r0 800c7ea: 68fb ldr r3, [r7, #12] 800c7ec: 1ad3 subs r3, r2, r3 800c7ee: 2b31 cmp r3, #49 ; 0x31 800c7f0: d9f0 bls.n 800c7d4 if(!TX_OK) 800c7f2: 4b0d ldr r3, [pc, #52] ; (800c828 ) 800c7f4: 781b ldrb r3, [r3, #0] 800c7f6: b2db uxtb r3, r3 800c7f8: f083 0301 eor.w r3, r3, #1 800c7fc: b2db uxtb r3, r3 800c7fe: 2b00 cmp r3, #0 800c800: d01a beq.n 800c838 { HAL_UART_Abort_IT(&huart7); 800c802: 4806 ldr r0, [pc, #24] ; (800c81c ) 800c804: f004 fadc bl 8010dc0 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c808: 2200 movs r2, #0 800c80a: f44f 7100 mov.w r1, #512 ; 0x200 800c80e: 4809 ldr r0, [pc, #36] ; (800c834 ) 800c810: f002 f93a bl 800ea88 return (-1); 800c814: f04f 33ff mov.w r3, #4294967295 800c818: e0f0 b.n 800c9fc 800c81a: bf00 nop 800c81c: 2006bc9c .word 0x2006bc9c 800c820: 2006b2f9 .word 0x2006b2f9 800c824: 2006b2fb .word 0x2006b2fb 800c828: 2006b2fa .word 0x2006b2fa 800c82c: 2006bd24 .word 0x2006bd24 800c830: 2006be2c .word 0x2006be2c 800c834: 40021400 .word 0x40021400 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c838: 2200 movs r2, #0 800c83a: f44f 7100 mov.w r1, #512 ; 0x200 800c83e: 4871 ldr r0, [pc, #452] ; (800ca04 ) 800c840: f002 f922 bl 800ea88 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 800c844: 2364 movs r3, #100 ; 0x64 800c846: 2201 movs r2, #1 800c848: 496f ldr r1, [pc, #444] ; (800ca08 ) 800c84a: 4870 ldr r0, [pc, #448] ; (800ca0c ) 800c84c: f004 f97a bl 8010b44 if(HAL_UART_Receive(&huart7, rx, 25, 100) == HAL_OK) 800c850: 2364 movs r3, #100 ; 0x64 800c852: 2219 movs r2, #25 800c854: 496c ldr r1, [pc, #432] ; (800ca08 ) 800c856: 486d ldr r0, [pc, #436] ; (800ca0c ) 800c858: f004 f974 bl 8010b44 800c85c: 4603 mov r3, r0 800c85e: 2b00 cmp r3, #0 800c860: f040 80c1 bne.w 800c9e6 { crc = (uint16_t) ((rx[24]) << 8 | rx[23]); 800c864: 4b68 ldr r3, [pc, #416] ; (800ca08 ) 800c866: 7e1b ldrb r3, [r3, #24] 800c868: 021b lsls r3, r3, #8 800c86a: b21a sxth r2, r3 800c86c: 4b66 ldr r3, [pc, #408] ; (800ca08 ) 800c86e: 7ddb ldrb r3, [r3, #23] 800c870: b21b sxth r3, r3 800c872: 4313 orrs r3, r2 800c874: b21b sxth r3, r3 800c876: 823b strh r3, [r7, #16] if(crc == Crc16_RX(23)) 800c878: 2017 movs r0, #23 800c87a: f7ff fd71 bl 800c360 800c87e: 4603 mov r3, r0 800c880: 461a mov r2, r3 800c882: 8a3b ldrh r3, [r7, #16] 800c884: 4293 cmp r3, r2 800c886: f040 80ab bne.w 800c9e0 { pardata.amplif[ch].IIN = (uint16_t) ((rx[3]) << 8 | rx[4]); 800c88a: 79fb ldrb r3, [r7, #7] 800c88c: 4a5e ldr r2, [pc, #376] ; (800ca08 ) 800c88e: 78d2 ldrb r2, [r2, #3] 800c890: 0212 lsls r2, r2, #8 800c892: b211 sxth r1, r2 800c894: 4a5c ldr r2, [pc, #368] ; (800ca08 ) 800c896: 7912 ldrb r2, [r2, #4] 800c898: b212 sxth r2, r2 800c89a: 430a orrs r2, r1 800c89c: b212 sxth r2, r2 800c89e: b291 uxth r1, r2 800c8a0: 4a5b ldr r2, [pc, #364] ; (800ca10 ) 800c8a2: 015b lsls r3, r3, #5 800c8a4: 4413 add r3, r2 800c8a6: 460a mov r2, r1 800c8a8: 801a strh r2, [r3, #0] pardata.amplif[ch].IFV = (uint16_t) ((rx[5]) << 8 | rx[6]); 800c8aa: 79fb ldrb r3, [r7, #7] 800c8ac: 4a56 ldr r2, [pc, #344] ; (800ca08 ) 800c8ae: 7952 ldrb r2, [r2, #5] 800c8b0: 0212 lsls r2, r2, #8 800c8b2: b211 sxth r1, r2 800c8b4: 4a54 ldr r2, [pc, #336] ; (800ca08 ) 800c8b6: 7992 ldrb r2, [r2, #6] 800c8b8: b212 sxth r2, r2 800c8ba: 430a orrs r2, r1 800c8bc: b212 sxth r2, r2 800c8be: b291 uxth r1, r2 800c8c0: 4a53 ldr r2, [pc, #332] ; (800ca10 ) 800c8c2: 015b lsls r3, r3, #5 800c8c4: 4413 add r3, r2 800c8c6: 3302 adds r3, #2 800c8c8: 460a mov r2, r1 800c8ca: 801a strh r2, [r3, #0] pardata.amplif[ch].IFN = (uint16_t) ((rx[7]) << 8 | rx[8]); 800c8cc: 79fb ldrb r3, [r7, #7] 800c8ce: 4a4e ldr r2, [pc, #312] ; (800ca08 ) 800c8d0: 79d2 ldrb r2, [r2, #7] 800c8d2: 0212 lsls r2, r2, #8 800c8d4: b211 sxth r1, r2 800c8d6: 4a4c ldr r2, [pc, #304] ; (800ca08 ) 800c8d8: 7a12 ldrb r2, [r2, #8] 800c8da: b212 sxth r2, r2 800c8dc: 430a orrs r2, r1 800c8de: b212 sxth r2, r2 800c8e0: b291 uxth r1, r2 800c8e2: 4a4b ldr r2, [pc, #300] ; (800ca10 ) 800c8e4: 015b lsls r3, r3, #5 800c8e6: 4413 add r3, r2 800c8e8: 3304 adds r3, #4 800c8ea: 460a mov r2, r1 800c8ec: 801a strh r2, [r3, #0] pardata.amplif[ch].IKU = (uint16_t) ((rx[9]) << 8 | rx[10]); 800c8ee: 79fb ldrb r3, [r7, #7] 800c8f0: 4a45 ldr r2, [pc, #276] ; (800ca08 ) 800c8f2: 7a52 ldrb r2, [r2, #9] 800c8f4: 0212 lsls r2, r2, #8 800c8f6: b211 sxth r1, r2 800c8f8: 4a43 ldr r2, [pc, #268] ; (800ca08 ) 800c8fa: 7a92 ldrb r2, [r2, #10] 800c8fc: b212 sxth r2, r2 800c8fe: 430a orrs r2, r1 800c900: b212 sxth r2, r2 800c902: b291 uxth r1, r2 800c904: 4a42 ldr r2, [pc, #264] ; (800ca10 ) 800c906: 015b lsls r3, r3, #5 800c908: 4413 add r3, r2 800c90a: 3306 adds r3, #6 800c90c: 460a mov r2, r1 800c90e: 801a strh r2, [r3, #0] pardata.amplif[ch].IKE = (uint16_t) ((rx[11]) << 8 | rx[12]); 800c910: 79fb ldrb r3, [r7, #7] 800c912: 4a3d ldr r2, [pc, #244] ; (800ca08 ) 800c914: 7ad2 ldrb r2, [r2, #11] 800c916: 0212 lsls r2, r2, #8 800c918: b211 sxth r1, r2 800c91a: 4a3b ldr r2, [pc, #236] ; (800ca08 ) 800c91c: 7b12 ldrb r2, [r2, #12] 800c91e: b212 sxth r2, r2 800c920: 430a orrs r2, r1 800c922: b212 sxth r2, r2 800c924: b291 uxth r1, r2 800c926: 4a3a ldr r2, [pc, #232] ; (800ca10 ) 800c928: 015b lsls r3, r3, #5 800c92a: 4413 add r3, r2 800c92c: 3308 adds r3, #8 800c92e: 460a mov r2, r1 800c930: 801a strh r2, [r3, #0] pardata.amplif[ch].IKD = (uint16_t) ((rx[13]) << 8 | rx[14]); 800c932: 79fb ldrb r3, [r7, #7] 800c934: 4a34 ldr r2, [pc, #208] ; (800ca08 ) 800c936: 7b52 ldrb r2, [r2, #13] 800c938: 0212 lsls r2, r2, #8 800c93a: b211 sxth r1, r2 800c93c: 4a32 ldr r2, [pc, #200] ; (800ca08 ) 800c93e: 7b92 ldrb r2, [r2, #14] 800c940: b212 sxth r2, r2 800c942: 430a orrs r2, r1 800c944: b212 sxth r2, r2 800c946: b291 uxth r1, r2 800c948: 4a31 ldr r2, [pc, #196] ; (800ca10 ) 800c94a: 015b lsls r3, r3, #5 800c94c: 4413 add r3, r2 800c94e: 330a adds r3, #10 800c950: 460a mov r2, r1 800c952: 801a strh r2, [r3, #0] pardata.amplif[ch].IKS = (uint16_t) ((rx[15]) << 8 | rx[16]); 800c954: 79fb ldrb r3, [r7, #7] 800c956: 4a2c ldr r2, [pc, #176] ; (800ca08 ) 800c958: 7bd2 ldrb r2, [r2, #15] 800c95a: 0212 lsls r2, r2, #8 800c95c: b211 sxth r1, r2 800c95e: 4a2a ldr r2, [pc, #168] ; (800ca08 ) 800c960: 7c12 ldrb r2, [r2, #16] 800c962: b212 sxth r2, r2 800c964: 430a orrs r2, r1 800c966: b212 sxth r2, r2 800c968: b291 uxth r1, r2 800c96a: 4a29 ldr r2, [pc, #164] ; (800ca10 ) 800c96c: 015b lsls r3, r3, #5 800c96e: 4413 add r3, r2 800c970: 330c adds r3, #12 800c972: 460a mov r2, r1 800c974: 801a strh r2, [r3, #0] pardata.amplif[ch].IPZ = (uint16_t) ((rx[17]) << 8 | rx[18]); 800c976: 79fb ldrb r3, [r7, #7] 800c978: 4a23 ldr r2, [pc, #140] ; (800ca08 ) 800c97a: 7c52 ldrb r2, [r2, #17] 800c97c: 0212 lsls r2, r2, #8 800c97e: b211 sxth r1, r2 800c980: 4a21 ldr r2, [pc, #132] ; (800ca08 ) 800c982: 7c92 ldrb r2, [r2, #18] 800c984: b212 sxth r2, r2 800c986: 430a orrs r2, r1 800c988: b212 sxth r2, r2 800c98a: b291 uxth r1, r2 800c98c: 4a20 ldr r2, [pc, #128] ; (800ca10 ) 800c98e: 015b lsls r3, r3, #5 800c990: 4413 add r3, r2 800c992: 330e adds r3, #14 800c994: 460a mov r2, r1 800c996: 801a strh r2, [r3, #0] pardata.amplif[ch].OPZ = (uint16_t) ((rx[19]) << 8 | rx[20]); 800c998: 79fb ldrb r3, [r7, #7] 800c99a: 4a1b ldr r2, [pc, #108] ; (800ca08 ) 800c99c: 7cd2 ldrb r2, [r2, #19] 800c99e: 0212 lsls r2, r2, #8 800c9a0: b211 sxth r1, r2 800c9a2: 4a19 ldr r2, [pc, #100] ; (800ca08 ) 800c9a4: 7d12 ldrb r2, [r2, #20] 800c9a6: b212 sxth r2, r2 800c9a8: 430a orrs r2, r1 800c9aa: b212 sxth r2, r2 800c9ac: b291 uxth r1, r2 800c9ae: 4a18 ldr r2, [pc, #96] ; (800ca10 ) 800c9b0: 015b lsls r3, r3, #5 800c9b2: 4413 add r3, r2 800c9b4: 3310 adds r3, #16 800c9b6: 460a mov r2, r1 800c9b8: 801a strh r2, [r3, #0] pardata.amplif[ch].VAL = (uint16_t) ((rx[21]) << 8 | rx[22]); 800c9ba: 79fb ldrb r3, [r7, #7] 800c9bc: 4a12 ldr r2, [pc, #72] ; (800ca08 ) 800c9be: 7d52 ldrb r2, [r2, #21] 800c9c0: 0212 lsls r2, r2, #8 800c9c2: b211 sxth r1, r2 800c9c4: 4a10 ldr r2, [pc, #64] ; (800ca08 ) 800c9c6: 7d92 ldrb r2, [r2, #22] 800c9c8: b212 sxth r2, r2 800c9ca: 430a orrs r2, r1 800c9cc: b212 sxth r2, r2 800c9ce: b291 uxth r1, r2 800c9d0: 4a0f ldr r2, [pc, #60] ; (800ca10 ) 800c9d2: 015b lsls r3, r3, #5 800c9d4: 4413 add r3, r2 800c9d6: 3312 adds r3, #18 800c9d8: 460a mov r2, r1 800c9da: 801a strh r2, [r3, #0] return 0; 800c9dc: 2300 movs r3, #0 800c9de: e00d b.n 800c9fc } else { return (-1); 800c9e0: f04f 33ff mov.w r3, #4294967295 800c9e4: e00a b.n 800c9fc } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800c9e6: 2200 movs r2, #0 800c9e8: f44f 7100 mov.w r1, #512 ; 0x200 800c9ec: 4805 ldr r0, [pc, #20] ; (800ca04 ) 800c9ee: f002 f84b bl 800ea88 return (-1); 800c9f2: f04f 33ff mov.w r3, #4294967295 800c9f6: e001 b.n 800c9fc } } return res; 800c9f8: f997 3017 ldrsb.w r3, [r7, #23] } 800c9fc: 4618 mov r0, r3 800c9fe: 3718 adds r7, #24 800ca00: 46bd mov sp, r7 800ca02: bd80 pop {r7, pc} 800ca04: 40021400 .word 0x40021400 800ca08: 2006bd24 .word 0x2006bd24 800ca0c: 2006bc9c .word 0x2006bc9c 800ca10: 2006b510 .word 0x2006b510 0800ca14 : int8_t WriteChannel(uint8_t ch) { 800ca14: b580 push {r7, lr} 800ca16: b086 sub sp, #24 800ca18: af00 add r7, sp, #0 800ca1a: 4603 mov r3, r0 800ca1c: 71fb strb r3, [r7, #7] int8_t res = -1; 800ca1e: 23ff movs r3, #255 ; 0xff 800ca20: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 800ca22: 2300 movs r3, #0 800ca24: 82bb strh r3, [r7, #20] uint16_t crc; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800ca26: 4ba8 ldr r3, [pc, #672] ; (800ccc8 ) 800ca28: 681b ldr r3, [r3, #0] 800ca2a: 69db ldr r3, [r3, #28] 800ca2c: f003 0308 and.w r3, r3, #8 800ca30: 2b08 cmp r3, #8 800ca32: d103 bne.n 800ca3c __HAL_UART_CLEAR_OREFLAG(&huart7); 800ca34: 4ba4 ldr r3, [pc, #656] ; (800ccc8 ) 800ca36: 681b ldr r3, [r3, #0] 800ca38: 2208 movs r2, #8 800ca3a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800ca3c: 4ba2 ldr r3, [pc, #648] ; (800ccc8 ) 800ca3e: 681b ldr r3, [r3, #0] 800ca40: 69db ldr r3, [r3, #28] 800ca42: f003 0301 and.w r3, r3, #1 800ca46: 2b01 cmp r3, #1 800ca48: d103 bne.n 800ca52 __HAL_UART_CLEAR_PEFLAG(&huart7); 800ca4a: 4b9f ldr r3, [pc, #636] ; (800ccc8 ) 800ca4c: 681b ldr r3, [r3, #0] 800ca4e: 2201 movs r2, #1 800ca50: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800ca52: 4b9d ldr r3, [pc, #628] ; (800ccc8 ) 800ca54: 681b ldr r3, [r3, #0] 800ca56: 69db ldr r3, [r3, #28] 800ca58: f003 0302 and.w r3, r3, #2 800ca5c: 2b02 cmp r3, #2 800ca5e: d103 bne.n 800ca68 __HAL_UART_CLEAR_FEFLAG(&huart7); 800ca60: 4b99 ldr r3, [pc, #612] ; (800ccc8 ) 800ca62: 681b ldr r3, [r3, #0] 800ca64: 2202 movs r2, #2 800ca66: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800ca68: 4b97 ldr r3, [pc, #604] ; (800ccc8 ) 800ca6a: 681b ldr r3, [r3, #0] 800ca6c: 69db ldr r3, [r3, #28] 800ca6e: f003 0304 and.w r3, r3, #4 800ca72: 2b04 cmp r3, #4 800ca74: d103 bne.n 800ca7e __HAL_UART_CLEAR_NEFLAG(&huart7); 800ca76: 4b94 ldr r3, [pc, #592] ; (800ccc8 ) 800ca78: 681b ldr r3, [r3, #0] 800ca7a: 2204 movs r2, #4 800ca7c: 621a str r2, [r3, #32] HAL_Delay(20); 800ca7e: 2014 movs r0, #20 800ca80: f001 f81c bl 800dabc TX_OK = RX_OK = UART_ERROR = false; 800ca84: 2200 movs r2, #0 800ca86: 4b91 ldr r3, [pc, #580] ; (800cccc ) 800ca88: 4611 mov r1, r2 800ca8a: 7019 strb r1, [r3, #0] 800ca8c: 4b90 ldr r3, [pc, #576] ; (800ccd0 ) 800ca8e: 4611 mov r1, r2 800ca90: 7019 strb r1, [r3, #0] 800ca92: 4b90 ldr r3, [pc, #576] ; (800ccd4 ) 800ca94: 701a strb r2, [r3, #0] len = 0; 800ca96: 2300 movs r3, #0 800ca98: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 800ca9a: f44f 7280 mov.w r2, #256 ; 0x100 800ca9e: 2100 movs r1, #0 800caa0: 488d ldr r0, [pc, #564] ; (800ccd8 ) 800caa2: f005 fc38 bl 8012316 iobuf[len++] = ch + 1; 800caa6: 8abb ldrh r3, [r7, #20] 800caa8: 1c5a adds r2, r3, #1 800caaa: 82ba strh r2, [r7, #20] 800caac: 461a mov r2, r3 800caae: 79fb ldrb r3, [r7, #7] 800cab0: 3301 adds r3, #1 800cab2: b2d9 uxtb r1, r3 800cab4: 4b89 ldr r3, [pc, #548] ; (800ccdc ) 800cab6: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 800cab8: 8abb ldrh r3, [r7, #20] 800caba: 1c5a adds r2, r3, #1 800cabc: 82ba strh r2, [r7, #20] 800cabe: 461a mov r2, r3 800cac0: 4b86 ldr r3, [pc, #536] ; (800ccdc ) 800cac2: 2110 movs r1, #16 800cac4: 5499 strb r1, [r3, r2] iobuf[len++] = HI(5001); 800cac6: 8abb ldrh r3, [r7, #20] 800cac8: 1c5a adds r2, r3, #1 800caca: 82ba strh r2, [r7, #20] 800cacc: 461a mov r2, r3 800cace: 4b83 ldr r3, [pc, #524] ; (800ccdc ) 800cad0: 2113 movs r1, #19 800cad2: 5499 strb r1, [r3, r2] iobuf[len++] = LO(5001); 800cad4: 8abb ldrh r3, [r7, #20] 800cad6: 1c5a adds r2, r3, #1 800cad8: 82ba strh r2, [r7, #20] 800cada: 461a mov r2, r3 800cadc: 4b7f ldr r3, [pc, #508] ; (800ccdc ) 800cade: 2189 movs r1, #137 ; 0x89 800cae0: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 800cae2: 8abb ldrh r3, [r7, #20] 800cae4: 1c5a adds r2, r3, #1 800cae6: 82ba strh r2, [r7, #20] 800cae8: 461a mov r2, r3 800caea: 4b7c ldr r3, [pc, #496] ; (800ccdc ) 800caec: 2100 movs r1, #0 800caee: 5499 strb r1, [r3, r2] iobuf[len++] = 10; 800caf0: 8abb ldrh r3, [r7, #20] 800caf2: 1c5a adds r2, r3, #1 800caf4: 82ba strh r2, [r7, #20] 800caf6: 461a mov r2, r3 800caf8: 4b78 ldr r3, [pc, #480] ; (800ccdc ) 800cafa: 210a movs r1, #10 800cafc: 5499 strb r1, [r3, r2] iobuf[len++] = 20; 800cafe: 8abb ldrh r3, [r7, #20] 800cb00: 1c5a adds r2, r3, #1 800cb02: 82ba strh r2, [r7, #20] 800cb04: 461a mov r2, r3 800cb06: 4b75 ldr r3, [pc, #468] ; (800ccdc ) 800cb08: 2114 movs r1, #20 800cb0a: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 800cb0c: 8abb ldrh r3, [r7, #20] 800cb0e: 1c5a adds r2, r3, #1 800cb10: 82ba strh r2, [r7, #20] 800cb12: 461a mov r2, r3 800cb14: 4b71 ldr r3, [pc, #452] ; (800ccdc ) 800cb16: 2100 movs r1, #0 800cb18: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IIN; 800cb1a: 8abb ldrh r3, [r7, #20] 800cb1c: 1c5a adds r2, r3, #1 800cb1e: 82ba strh r2, [r7, #20] 800cb20: 4619 mov r1, r3 800cb22: 79fb ldrb r3, [r7, #7] 800cb24: 4a6e ldr r2, [pc, #440] ; (800cce0 ) 800cb26: 015b lsls r3, r3, #5 800cb28: 4413 add r3, r2 800cb2a: 881b ldrh r3, [r3, #0] 800cb2c: b29b uxth r3, r3 800cb2e: b2da uxtb r2, r3 800cb30: 4b6a ldr r3, [pc, #424] ; (800ccdc ) 800cb32: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cb34: 8abb ldrh r3, [r7, #20] 800cb36: 1c5a adds r2, r3, #1 800cb38: 82ba strh r2, [r7, #20] 800cb3a: 461a mov r2, r3 800cb3c: 4b67 ldr r3, [pc, #412] ; (800ccdc ) 800cb3e: 2100 movs r1, #0 800cb40: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IFV; 800cb42: 8abb ldrh r3, [r7, #20] 800cb44: 1c5a adds r2, r3, #1 800cb46: 82ba strh r2, [r7, #20] 800cb48: 4619 mov r1, r3 800cb4a: 79fb ldrb r3, [r7, #7] 800cb4c: 4a64 ldr r2, [pc, #400] ; (800cce0 ) 800cb4e: 015b lsls r3, r3, #5 800cb50: 4413 add r3, r2 800cb52: 3302 adds r3, #2 800cb54: 881b ldrh r3, [r3, #0] 800cb56: b29b uxth r3, r3 800cb58: b2da uxtb r2, r3 800cb5a: 4b60 ldr r3, [pc, #384] ; (800ccdc ) 800cb5c: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cb5e: 8abb ldrh r3, [r7, #20] 800cb60: 1c5a adds r2, r3, #1 800cb62: 82ba strh r2, [r7, #20] 800cb64: 461a mov r2, r3 800cb66: 4b5d ldr r3, [pc, #372] ; (800ccdc ) 800cb68: 2100 movs r1, #0 800cb6a: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IFN; 800cb6c: 8abb ldrh r3, [r7, #20] 800cb6e: 1c5a adds r2, r3, #1 800cb70: 82ba strh r2, [r7, #20] 800cb72: 4619 mov r1, r3 800cb74: 79fb ldrb r3, [r7, #7] 800cb76: 4a5a ldr r2, [pc, #360] ; (800cce0 ) 800cb78: 015b lsls r3, r3, #5 800cb7a: 4413 add r3, r2 800cb7c: 3304 adds r3, #4 800cb7e: 881b ldrh r3, [r3, #0] 800cb80: b29b uxth r3, r3 800cb82: b2da uxtb r2, r3 800cb84: 4b55 ldr r3, [pc, #340] ; (800ccdc ) 800cb86: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cb88: 8abb ldrh r3, [r7, #20] 800cb8a: 1c5a adds r2, r3, #1 800cb8c: 82ba strh r2, [r7, #20] 800cb8e: 461a mov r2, r3 800cb90: 4b52 ldr r3, [pc, #328] ; (800ccdc ) 800cb92: 2100 movs r1, #0 800cb94: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKU; 800cb96: 8abb ldrh r3, [r7, #20] 800cb98: 1c5a adds r2, r3, #1 800cb9a: 82ba strh r2, [r7, #20] 800cb9c: 4619 mov r1, r3 800cb9e: 79fb ldrb r3, [r7, #7] 800cba0: 4a4f ldr r2, [pc, #316] ; (800cce0 ) 800cba2: 015b lsls r3, r3, #5 800cba4: 4413 add r3, r2 800cba6: 3306 adds r3, #6 800cba8: 881b ldrh r3, [r3, #0] 800cbaa: b29b uxth r3, r3 800cbac: b2da uxtb r2, r3 800cbae: 4b4b ldr r3, [pc, #300] ; (800ccdc ) 800cbb0: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cbb2: 8abb ldrh r3, [r7, #20] 800cbb4: 1c5a adds r2, r3, #1 800cbb6: 82ba strh r2, [r7, #20] 800cbb8: 461a mov r2, r3 800cbba: 4b48 ldr r3, [pc, #288] ; (800ccdc ) 800cbbc: 2100 movs r1, #0 800cbbe: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKE; 800cbc0: 8abb ldrh r3, [r7, #20] 800cbc2: 1c5a adds r2, r3, #1 800cbc4: 82ba strh r2, [r7, #20] 800cbc6: 4619 mov r1, r3 800cbc8: 79fb ldrb r3, [r7, #7] 800cbca: 4a45 ldr r2, [pc, #276] ; (800cce0 ) 800cbcc: 015b lsls r3, r3, #5 800cbce: 4413 add r3, r2 800cbd0: 3308 adds r3, #8 800cbd2: 881b ldrh r3, [r3, #0] 800cbd4: b29b uxth r3, r3 800cbd6: b2da uxtb r2, r3 800cbd8: 4b40 ldr r3, [pc, #256] ; (800ccdc ) 800cbda: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cbdc: 8abb ldrh r3, [r7, #20] 800cbde: 1c5a adds r2, r3, #1 800cbe0: 82ba strh r2, [r7, #20] 800cbe2: 461a mov r2, r3 800cbe4: 4b3d ldr r3, [pc, #244] ; (800ccdc ) 800cbe6: 2100 movs r1, #0 800cbe8: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKD; 800cbea: 8abb ldrh r3, [r7, #20] 800cbec: 1c5a adds r2, r3, #1 800cbee: 82ba strh r2, [r7, #20] 800cbf0: 4619 mov r1, r3 800cbf2: 79fb ldrb r3, [r7, #7] 800cbf4: 4a3a ldr r2, [pc, #232] ; (800cce0 ) 800cbf6: 015b lsls r3, r3, #5 800cbf8: 4413 add r3, r2 800cbfa: 330a adds r3, #10 800cbfc: 881b ldrh r3, [r3, #0] 800cbfe: b29b uxth r3, r3 800cc00: b2da uxtb r2, r3 800cc02: 4b36 ldr r3, [pc, #216] ; (800ccdc ) 800cc04: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cc06: 8abb ldrh r3, [r7, #20] 800cc08: 1c5a adds r2, r3, #1 800cc0a: 82ba strh r2, [r7, #20] 800cc0c: 461a mov r2, r3 800cc0e: 4b33 ldr r3, [pc, #204] ; (800ccdc ) 800cc10: 2100 movs r1, #0 800cc12: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IKS; 800cc14: 8abb ldrh r3, [r7, #20] 800cc16: 1c5a adds r2, r3, #1 800cc18: 82ba strh r2, [r7, #20] 800cc1a: 4619 mov r1, r3 800cc1c: 79fb ldrb r3, [r7, #7] 800cc1e: 4a30 ldr r2, [pc, #192] ; (800cce0 ) 800cc20: 015b lsls r3, r3, #5 800cc22: 4413 add r3, r2 800cc24: 330c adds r3, #12 800cc26: 881b ldrh r3, [r3, #0] 800cc28: b29b uxth r3, r3 800cc2a: b2da uxtb r2, r3 800cc2c: 4b2b ldr r3, [pc, #172] ; (800ccdc ) 800cc2e: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cc30: 8abb ldrh r3, [r7, #20] 800cc32: 1c5a adds r2, r3, #1 800cc34: 82ba strh r2, [r7, #20] 800cc36: 461a mov r2, r3 800cc38: 4b28 ldr r3, [pc, #160] ; (800ccdc ) 800cc3a: 2100 movs r1, #0 800cc3c: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].IPZ; 800cc3e: 8abb ldrh r3, [r7, #20] 800cc40: 1c5a adds r2, r3, #1 800cc42: 82ba strh r2, [r7, #20] 800cc44: 4619 mov r1, r3 800cc46: 79fb ldrb r3, [r7, #7] 800cc48: 4a25 ldr r2, [pc, #148] ; (800cce0 ) 800cc4a: 015b lsls r3, r3, #5 800cc4c: 4413 add r3, r2 800cc4e: 330e adds r3, #14 800cc50: 881b ldrh r3, [r3, #0] 800cc52: b29b uxth r3, r3 800cc54: b2da uxtb r2, r3 800cc56: 4b21 ldr r3, [pc, #132] ; (800ccdc ) 800cc58: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cc5a: 8abb ldrh r3, [r7, #20] 800cc5c: 1c5a adds r2, r3, #1 800cc5e: 82ba strh r2, [r7, #20] 800cc60: 461a mov r2, r3 800cc62: 4b1e ldr r3, [pc, #120] ; (800ccdc ) 800cc64: 2100 movs r1, #0 800cc66: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].OPZ; 800cc68: 8abb ldrh r3, [r7, #20] 800cc6a: 1c5a adds r2, r3, #1 800cc6c: 82ba strh r2, [r7, #20] 800cc6e: 4619 mov r1, r3 800cc70: 79fb ldrb r3, [r7, #7] 800cc72: 4a1b ldr r2, [pc, #108] ; (800cce0 ) 800cc74: 015b lsls r3, r3, #5 800cc76: 4413 add r3, r2 800cc78: 3310 adds r3, #16 800cc7a: 881b ldrh r3, [r3, #0] 800cc7c: b29b uxth r3, r3 800cc7e: b2da uxtb r2, r3 800cc80: 4b16 ldr r3, [pc, #88] ; (800ccdc ) 800cc82: 545a strb r2, [r3, r1] iobuf[len++] = 0; 800cc84: 8abb ldrh r3, [r7, #20] 800cc86: 1c5a adds r2, r3, #1 800cc88: 82ba strh r2, [r7, #20] 800cc8a: 461a mov r2, r3 800cc8c: 4b13 ldr r3, [pc, #76] ; (800ccdc ) 800cc8e: 2100 movs r1, #0 800cc90: 5499 strb r1, [r3, r2] iobuf[len++] = pardata.amplif[ch].VAL; 800cc92: 8abb ldrh r3, [r7, #20] 800cc94: 1c5a adds r2, r3, #1 800cc96: 82ba strh r2, [r7, #20] 800cc98: 4619 mov r1, r3 800cc9a: 79fb ldrb r3, [r7, #7] 800cc9c: 4a10 ldr r2, [pc, #64] ; (800cce0 ) 800cc9e: 015b lsls r3, r3, #5 800cca0: 4413 add r3, r2 800cca2: 3312 adds r3, #18 800cca4: 881b ldrh r3, [r3, #0] 800cca6: b29b uxth r3, r3 800cca8: b2da uxtb r2, r3 800ccaa: 4b0c ldr r3, [pc, #48] ; (800ccdc ) 800ccac: 545a strb r2, [r3, r1] crc = Crc16(len); 800ccae: 8abb ldrh r3, [r7, #20] 800ccb0: 4618 mov r0, r3 800ccb2: f7ff fb29 bl 800c308 800ccb6: 4603 mov r3, r0 800ccb8: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 800ccba: 8abb ldrh r3, [r7, #20] 800ccbc: 1c5a adds r2, r3, #1 800ccbe: 82ba strh r2, [r7, #20] 800ccc0: 461a mov r2, r3 800ccc2: 8a7b ldrh r3, [r7, #18] 800ccc4: b2d9 uxtb r1, r3 800ccc6: e00d b.n 800cce4 800ccc8: 2006bc9c .word 0x2006bc9c 800cccc: 2006b2f9 .word 0x2006b2f9 800ccd0: 2006b2fb .word 0x2006b2fb 800ccd4: 2006b2fa .word 0x2006b2fa 800ccd8: 2006bd24 .word 0x2006bd24 800ccdc: 2006be2c .word 0x2006be2c 800cce0: 2006b510 .word 0x2006b510 800cce4: 4b44 ldr r3, [pc, #272] ; (800cdf8 ) 800cce6: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 800cce8: 8abb ldrh r3, [r7, #20] 800ccea: 1c5a adds r2, r3, #1 800ccec: 82ba strh r2, [r7, #20] 800ccee: 461a mov r2, r3 800ccf0: 8a7b ldrh r3, [r7, #18] 800ccf2: 0a1b lsrs r3, r3, #8 800ccf4: b29b uxth r3, r3 800ccf6: b2d9 uxtb r1, r3 800ccf8: 4b3f ldr r3, [pc, #252] ; (800cdf8 ) 800ccfa: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 800ccfc: f000 fed2 bl 800daa4 800cd00: 4603 mov r3, r0 800cd02: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 800cd04: 2201 movs r2, #1 800cd06: f44f 7100 mov.w r1, #512 ; 0x200 800cd0a: 483c ldr r0, [pc, #240] ; (800cdfc ) 800cd0c: f001 febc bl 800ea88 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 800cd10: 8abb ldrh r3, [r7, #20] 800cd12: 461a mov r2, r3 800cd14: 4938 ldr r1, [pc, #224] ; (800cdf8 ) 800cd16: 483a ldr r0, [pc, #232] ; (800ce00 ) 800cd18: f003 ffe4 bl 8010ce4 800cd1c: 4603 mov r3, r0 800cd1e: 2b00 cmp r3, #0 800cd20: d163 bne.n 800cdea { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 800cd22: bf00 nop 800cd24: 4b37 ldr r3, [pc, #220] ; (800ce04 ) 800cd26: 781b ldrb r3, [r3, #0] 800cd28: b2db uxtb r3, r3 800cd2a: f083 0301 eor.w r3, r3, #1 800cd2e: b2db uxtb r3, r3 800cd30: 2b00 cmp r3, #0 800cd32: d006 beq.n 800cd42 800cd34: f000 feb6 bl 800daa4 800cd38: 4602 mov r2, r0 800cd3a: 68fb ldr r3, [r7, #12] 800cd3c: 1ad3 subs r3, r2, r3 800cd3e: 2bc7 cmp r3, #199 ; 0xc7 800cd40: d9f0 bls.n 800cd24 if(!TX_OK) 800cd42: 4b30 ldr r3, [pc, #192] ; (800ce04 ) 800cd44: 781b ldrb r3, [r3, #0] 800cd46: b2db uxtb r3, r3 800cd48: f083 0301 eor.w r3, r3, #1 800cd4c: b2db uxtb r3, r3 800cd4e: 2b00 cmp r3, #0 800cd50: d00b beq.n 800cd6a { HAL_UART_Abort_IT(&huart7); 800cd52: 482b ldr r0, [pc, #172] ; (800ce00 ) 800cd54: f004 f834 bl 8010dc0 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800cd58: 2200 movs r2, #0 800cd5a: f44f 7100 mov.w r1, #512 ; 0x200 800cd5e: 4827 ldr r0, [pc, #156] ; (800cdfc ) 800cd60: f001 fe92 bl 800ea88 return (-1); 800cd64: f04f 33ff mov.w r3, #4294967295 800cd68: e041 b.n 800cdee } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800cd6a: 2200 movs r2, #0 800cd6c: f44f 7100 mov.w r1, #512 ; 0x200 800cd70: 4822 ldr r0, [pc, #136] ; (800cdfc ) 800cd72: f001 fe89 bl 800ea88 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 800cd76: 2364 movs r3, #100 ; 0x64 800cd78: 2201 movs r2, #1 800cd7a: 4923 ldr r1, [pc, #140] ; (800ce08 ) 800cd7c: 4820 ldr r0, [pc, #128] ; (800ce00 ) 800cd7e: f003 fee1 bl 8010b44 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 800cd82: f44f 73fa mov.w r3, #500 ; 0x1f4 800cd86: 2208 movs r2, #8 800cd88: 491f ldr r1, [pc, #124] ; (800ce08 ) 800cd8a: 481d ldr r0, [pc, #116] ; (800ce00 ) 800cd8c: f003 feda bl 8010b44 800cd90: 4603 mov r3, r0 800cd92: 2b00 cmp r3, #0 800cd94: d120 bne.n 800cdd8 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 800cd96: 4b1c ldr r3, [pc, #112] ; (800ce08 ) 800cd98: 79db ldrb r3, [r3, #7] 800cd9a: 021b lsls r3, r3, #8 800cd9c: b21a sxth r2, r3 800cd9e: 4b1a ldr r3, [pc, #104] ; (800ce08 ) 800cda0: 799b ldrb r3, [r3, #6] 800cda2: b21b sxth r3, r3 800cda4: 4313 orrs r3, r2 800cda6: b21b sxth r3, r3 800cda8: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 800cdaa: 2006 movs r0, #6 800cdac: f7ff fad8 bl 800c360 800cdb0: 4603 mov r3, r0 800cdb2: 461a mov r2, r3 800cdb4: 8a7b ldrh r3, [r7, #18] 800cdb6: 4293 cmp r3, r2 800cdb8: d10b bne.n 800cdd2 { if(rx[0] == (ch + 1)) 800cdba: 4b13 ldr r3, [pc, #76] ; (800ce08 ) 800cdbc: 781b ldrb r3, [r3, #0] 800cdbe: 461a mov r2, r3 800cdc0: 79fb ldrb r3, [r7, #7] 800cdc2: 3301 adds r3, #1 800cdc4: 429a cmp r2, r3 800cdc6: d101 bne.n 800cdcc return 0; 800cdc8: 2300 movs r3, #0 800cdca: e010 b.n 800cdee else return (-1); 800cdcc: f04f 33ff mov.w r3, #4294967295 800cdd0: e00d b.n 800cdee } else { return (-1); 800cdd2: f04f 33ff mov.w r3, #4294967295 800cdd6: e00a b.n 800cdee } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800cdd8: 2200 movs r2, #0 800cdda: f44f 7100 mov.w r1, #512 ; 0x200 800cdde: 4807 ldr r0, [pc, #28] ; (800cdfc ) 800cde0: f001 fe52 bl 800ea88 return (-1); 800cde4: f04f 33ff mov.w r3, #4294967295 800cde8: e001 b.n 800cdee } } return res; 800cdea: f997 3017 ldrsb.w r3, [r7, #23] } 800cdee: 4618 mov r0, r3 800cdf0: 3718 adds r7, #24 800cdf2: 46bd mov sp, r7 800cdf4: bd80 pop {r7, pc} 800cdf6: bf00 nop 800cdf8: 2006be2c .word 0x2006be2c 800cdfc: 40021400 .word 0x40021400 800ce00: 2006bc9c .word 0x2006bc9c 800ce04: 2006b2fa .word 0x2006b2fa 800ce08: 2006bd24 .word 0x2006bd24 0800ce0c : int8_t ReadChannelSens(uint8_t ch) { 800ce0c: b580 push {r7, lr} 800ce0e: b086 sub sp, #24 800ce10: af00 add r7, sp, #0 800ce12: 4603 mov r3, r0 800ce14: 71fb strb r3, [r7, #7] int8_t res = -1; 800ce16: 23ff movs r3, #255 ; 0xff 800ce18: 75fb strb r3, [r7, #23] uint16_t i, len = 0, cnt = 0; 800ce1a: 2300 movs r3, #0 800ce1c: 82bb strh r3, [r7, #20] 800ce1e: 2300 movs r3, #0 800ce20: 827b strh r3, [r7, #18] uint16_t crc; __IO uint32_t timeout; sfloat f; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800ce22: 4b8a ldr r3, [pc, #552] ; (800d04c ) 800ce24: 681b ldr r3, [r3, #0] 800ce26: 69db ldr r3, [r3, #28] 800ce28: f003 0308 and.w r3, r3, #8 800ce2c: 2b08 cmp r3, #8 800ce2e: d103 bne.n 800ce38 __HAL_UART_CLEAR_OREFLAG(&huart7); 800ce30: 4b86 ldr r3, [pc, #536] ; (800d04c ) 800ce32: 681b ldr r3, [r3, #0] 800ce34: 2208 movs r2, #8 800ce36: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800ce38: 4b84 ldr r3, [pc, #528] ; (800d04c ) 800ce3a: 681b ldr r3, [r3, #0] 800ce3c: 69db ldr r3, [r3, #28] 800ce3e: f003 0301 and.w r3, r3, #1 800ce42: 2b01 cmp r3, #1 800ce44: d103 bne.n 800ce4e __HAL_UART_CLEAR_PEFLAG(&huart7); 800ce46: 4b81 ldr r3, [pc, #516] ; (800d04c ) 800ce48: 681b ldr r3, [r3, #0] 800ce4a: 2201 movs r2, #1 800ce4c: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800ce4e: 4b7f ldr r3, [pc, #508] ; (800d04c ) 800ce50: 681b ldr r3, [r3, #0] 800ce52: 69db ldr r3, [r3, #28] 800ce54: f003 0302 and.w r3, r3, #2 800ce58: 2b02 cmp r3, #2 800ce5a: d103 bne.n 800ce64 __HAL_UART_CLEAR_FEFLAG(&huart7); 800ce5c: 4b7b ldr r3, [pc, #492] ; (800d04c ) 800ce5e: 681b ldr r3, [r3, #0] 800ce60: 2202 movs r2, #2 800ce62: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800ce64: 4b79 ldr r3, [pc, #484] ; (800d04c ) 800ce66: 681b ldr r3, [r3, #0] 800ce68: 69db ldr r3, [r3, #28] 800ce6a: f003 0304 and.w r3, r3, #4 800ce6e: 2b04 cmp r3, #4 800ce70: d103 bne.n 800ce7a __HAL_UART_CLEAR_NEFLAG(&huart7); 800ce72: 4b76 ldr r3, [pc, #472] ; (800d04c ) 800ce74: 681b ldr r3, [r3, #0] 800ce76: 2204 movs r2, #4 800ce78: 621a str r2, [r3, #32] HAL_Delay(20); 800ce7a: 2014 movs r0, #20 800ce7c: f000 fe1e bl 800dabc TX_OK = RX_OK = UART_ERROR = false; 800ce80: 2200 movs r2, #0 800ce82: 4b73 ldr r3, [pc, #460] ; (800d050 ) 800ce84: 4611 mov r1, r2 800ce86: 7019 strb r1, [r3, #0] 800ce88: 4b72 ldr r3, [pc, #456] ; (800d054 ) 800ce8a: 4611 mov r1, r2 800ce8c: 7019 strb r1, [r3, #0] 800ce8e: 4b72 ldr r3, [pc, #456] ; (800d058 ) 800ce90: 701a strb r2, [r3, #0] len = 0; 800ce92: 2300 movs r3, #0 800ce94: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 800ce96: f44f 7280 mov.w r2, #256 ; 0x100 800ce9a: 2100 movs r1, #0 800ce9c: 486f ldr r0, [pc, #444] ; (800d05c ) 800ce9e: f005 fa3a bl 8012316 iobuf[len++] = ch + 1; 800cea2: 8abb ldrh r3, [r7, #20] 800cea4: 1c5a adds r2, r3, #1 800cea6: 82ba strh r2, [r7, #20] 800cea8: 461a mov r2, r3 800ceaa: 79fb ldrb r3, [r7, #7] 800ceac: 3301 adds r3, #1 800ceae: b2d9 uxtb r1, r3 800ceb0: 4b6b ldr r3, [pc, #428] ; (800d060 ) 800ceb2: 5499 strb r1, [r3, r2] iobuf[len++] = 0x03; 800ceb4: 8abb ldrh r3, [r7, #20] 800ceb6: 1c5a adds r2, r3, #1 800ceb8: 82ba strh r2, [r7, #20] 800ceba: 461a mov r2, r3 800cebc: 4b68 ldr r3, [pc, #416] ; (800d060 ) 800cebe: 2103 movs r1, #3 800cec0: 5499 strb r1, [r3, r2] iobuf[len++] = HI(7502); 800cec2: 8abb ldrh r3, [r7, #20] 800cec4: 1c5a adds r2, r3, #1 800cec6: 82ba strh r2, [r7, #20] 800cec8: 461a mov r2, r3 800ceca: 4b65 ldr r3, [pc, #404] ; (800d060 ) 800cecc: 211d movs r1, #29 800cece: 5499 strb r1, [r3, r2] iobuf[len++] = LO(7502); 800ced0: 8abb ldrh r3, [r7, #20] 800ced2: 1c5a adds r2, r3, #1 800ced4: 82ba strh r2, [r7, #20] 800ced6: 461a mov r2, r3 800ced8: 4b61 ldr r3, [pc, #388] ; (800d060 ) 800ceda: 214e movs r1, #78 ; 0x4e 800cedc: 5499 strb r1, [r3, r2] iobuf[len++] = 0; // 800cede: 8abb ldrh r3, [r7, #20] 800cee0: 1c5a adds r2, r3, #1 800cee2: 82ba strh r2, [r7, #20] 800cee4: 461a mov r2, r3 800cee6: 4b5e ldr r3, [pc, #376] ; (800d060 ) 800cee8: 2100 movs r1, #0 800ceea: 5499 strb r1, [r3, r2] iobuf[len++] = 1; // SENS 800ceec: 8abb ldrh r3, [r7, #20] 800ceee: 1c5a adds r2, r3, #1 800cef0: 82ba strh r2, [r7, #20] 800cef2: 461a mov r2, r3 800cef4: 4b5a ldr r3, [pc, #360] ; (800d060 ) 800cef6: 2101 movs r1, #1 800cef8: 5499 strb r1, [r3, r2] crc = Crc16(len); 800cefa: 8abb ldrh r3, [r7, #20] 800cefc: 4618 mov r0, r3 800cefe: f7ff fa03 bl 800c308 800cf02: 4603 mov r3, r0 800cf04: 823b strh r3, [r7, #16] iobuf[len++] = LO(crc); 800cf06: 8abb ldrh r3, [r7, #20] 800cf08: 1c5a adds r2, r3, #1 800cf0a: 82ba strh r2, [r7, #20] 800cf0c: 461a mov r2, r3 800cf0e: 8a3b ldrh r3, [r7, #16] 800cf10: b2d9 uxtb r1, r3 800cf12: 4b53 ldr r3, [pc, #332] ; (800d060 ) 800cf14: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 800cf16: 8abb ldrh r3, [r7, #20] 800cf18: 1c5a adds r2, r3, #1 800cf1a: 82ba strh r2, [r7, #20] 800cf1c: 461a mov r2, r3 800cf1e: 8a3b ldrh r3, [r7, #16] 800cf20: 0a1b lsrs r3, r3, #8 800cf22: b29b uxth r3, r3 800cf24: b2d9 uxtb r1, r3 800cf26: 4b4e ldr r3, [pc, #312] ; (800d060 ) 800cf28: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 800cf2a: f000 fdbb bl 800daa4 800cf2e: 4603 mov r3, r0 800cf30: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 800cf32: 2201 movs r2, #1 800cf34: f44f 7100 mov.w r1, #512 ; 0x200 800cf38: 484a ldr r0, [pc, #296] ; (800d064 ) 800cf3a: f001 fda5 bl 800ea88 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 800cf3e: 8abb ldrh r3, [r7, #20] 800cf40: 461a mov r2, r3 800cf42: 4947 ldr r1, [pc, #284] ; (800d060 ) 800cf44: 4841 ldr r0, [pc, #260] ; (800d04c ) 800cf46: f003 fecd bl 8010ce4 800cf4a: 4603 mov r3, r0 800cf4c: 2b00 cmp r3, #0 800cf4e: d177 bne.n 800d040 { while((!TX_OK) && (HAL_GetTick() - timeout < 50)); 800cf50: bf00 nop 800cf52: 4b41 ldr r3, [pc, #260] ; (800d058 ) 800cf54: 781b ldrb r3, [r3, #0] 800cf56: b2db uxtb r3, r3 800cf58: f083 0301 eor.w r3, r3, #1 800cf5c: b2db uxtb r3, r3 800cf5e: 2b00 cmp r3, #0 800cf60: d006 beq.n 800cf70 800cf62: f000 fd9f bl 800daa4 800cf66: 4602 mov r2, r0 800cf68: 68fb ldr r3, [r7, #12] 800cf6a: 1ad3 subs r3, r2, r3 800cf6c: 2b31 cmp r3, #49 ; 0x31 800cf6e: d9f0 bls.n 800cf52 if(!TX_OK) 800cf70: 4b39 ldr r3, [pc, #228] ; (800d058 ) 800cf72: 781b ldrb r3, [r3, #0] 800cf74: b2db uxtb r3, r3 800cf76: f083 0301 eor.w r3, r3, #1 800cf7a: b2db uxtb r3, r3 800cf7c: 2b00 cmp r3, #0 800cf7e: d00b beq.n 800cf98 { HAL_UART_Abort_IT(&huart7); 800cf80: 4832 ldr r0, [pc, #200] ; (800d04c ) 800cf82: f003 ff1d bl 8010dc0 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800cf86: 2200 movs r2, #0 800cf88: f44f 7100 mov.w r1, #512 ; 0x200 800cf8c: 4835 ldr r0, [pc, #212] ; (800d064 ) 800cf8e: f001 fd7b bl 800ea88 return (-1); 800cf92: f04f 33ff mov.w r3, #4294967295 800cf96: e055 b.n 800d044 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800cf98: 2200 movs r2, #0 800cf9a: f44f 7100 mov.w r1, #512 ; 0x200 800cf9e: 4831 ldr r0, [pc, #196] ; (800d064 ) 800cfa0: f001 fd72 bl 800ea88 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 800cfa4: 2364 movs r3, #100 ; 0x64 800cfa6: 2201 movs r2, #1 800cfa8: 492c ldr r1, [pc, #176] ; (800d05c ) 800cfaa: 4828 ldr r0, [pc, #160] ; (800d04c ) 800cfac: f003 fdca bl 8010b44 if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK) 800cfb0: 2364 movs r3, #100 ; 0x64 800cfb2: 2209 movs r2, #9 800cfb4: 4929 ldr r1, [pc, #164] ; (800d05c ) 800cfb6: 4825 ldr r0, [pc, #148] ; (800d04c ) 800cfb8: f003 fdc4 bl 8010b44 800cfbc: 4603 mov r3, r0 800cfbe: 2b00 cmp r3, #0 800cfc0: d135 bne.n 800d02e { crc = (uint16_t) ((rx[8]) << 8 | rx[7]); 800cfc2: 4b26 ldr r3, [pc, #152] ; (800d05c ) 800cfc4: 7a1b ldrb r3, [r3, #8] 800cfc6: 021b lsls r3, r3, #8 800cfc8: b21a sxth r2, r3 800cfca: 4b24 ldr r3, [pc, #144] ; (800d05c ) 800cfcc: 79db ldrb r3, [r3, #7] 800cfce: b21b sxth r3, r3 800cfd0: 4313 orrs r3, r2 800cfd2: b21b sxth r3, r3 800cfd4: 823b strh r3, [r7, #16] if(crc == Crc16_RX(7)) 800cfd6: 2007 movs r0, #7 800cfd8: f7ff f9c2 bl 800c360 800cfdc: 4603 mov r3, r0 800cfde: 461a mov r2, r3 800cfe0: 8a3b ldrh r3, [r7, #16] 800cfe2: 4293 cmp r3, r2 800cfe4: d120 bne.n 800d028 { f.ch[3] = rx[3]; 800cfe6: 4b1d ldr r3, [pc, #116] ; (800d05c ) 800cfe8: 78db ldrb r3, [r3, #3] 800cfea: 72fb strb r3, [r7, #11] f.ch[2] = rx[4]; 800cfec: 4b1b ldr r3, [pc, #108] ; (800d05c ) 800cfee: 791b ldrb r3, [r3, #4] 800cff0: 72bb strb r3, [r7, #10] f.ch[1] = rx[5]; 800cff2: 4b1a ldr r3, [pc, #104] ; (800d05c ) 800cff4: 795b ldrb r3, [r3, #5] 800cff6: 727b strb r3, [r7, #9] f.ch[0] = rx[6]; 800cff8: 4b18 ldr r3, [pc, #96] ; (800d05c ) 800cffa: 799b ldrb r3, [r3, #6] 800cffc: 723b strb r3, [r7, #8] if(f.fl < 0.0001f) { 800cffe: edd7 7a02 vldr s15, [r7, #8] 800d002: ed9f 7a19 vldr s14, [pc, #100] ; 800d068 800d006: eef4 7ac7 vcmpe.f32 s15, s14 800d00a: eef1 fa10 vmrs APSR_nzcv, fpscr 800d00e: d502 bpl.n 800d016 return (-1); 800d010: f04f 33ff mov.w r3, #4294967295 800d014: e016 b.n 800d044 } else { pardata.amplif[ch].SENS = f.fl; 800d016: 79fb ldrb r3, [r7, #7] 800d018: 68ba ldr r2, [r7, #8] 800d01a: 4914 ldr r1, [pc, #80] ; (800d06c ) 800d01c: 015b lsls r3, r3, #5 800d01e: 440b add r3, r1 800d020: 3318 adds r3, #24 800d022: 601a str r2, [r3, #0] } return 0; 800d024: 2300 movs r3, #0 800d026: e00d b.n 800d044 } else { return (-1); 800d028: f04f 33ff mov.w r3, #4294967295 800d02c: e00a b.n 800d044 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d02e: 2200 movs r2, #0 800d030: f44f 7100 mov.w r1, #512 ; 0x200 800d034: 480b ldr r0, [pc, #44] ; (800d064 ) 800d036: f001 fd27 bl 800ea88 return (-1); 800d03a: f04f 33ff mov.w r3, #4294967295 800d03e: e001 b.n 800d044 } } return res; 800d040: f997 3017 ldrsb.w r3, [r7, #23] } 800d044: 4618 mov r0, r3 800d046: 3718 adds r7, #24 800d048: 46bd mov sp, r7 800d04a: bd80 pop {r7, pc} 800d04c: 2006bc9c .word 0x2006bc9c 800d050: 2006b2f9 .word 0x2006b2f9 800d054: 2006b2fb .word 0x2006b2fb 800d058: 2006b2fa .word 0x2006b2fa 800d05c: 2006bd24 .word 0x2006bd24 800d060: 2006be2c .word 0x2006be2c 800d064: 40021400 .word 0x40021400 800d068: 38d1b717 .word 0x38d1b717 800d06c: 2006b510 .word 0x2006b510 0800d070 : int8_t WriteChannelSens(uint8_t ch) { 800d070: b580 push {r7, lr} 800d072: b086 sub sp, #24 800d074: af00 add r7, sp, #0 800d076: 4603 mov r3, r0 800d078: 71fb strb r3, [r7, #7] int8_t res = -1; 800d07a: 23ff movs r3, #255 ; 0xff 800d07c: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 800d07e: 2300 movs r3, #0 800d080: 82bb strh r3, [r7, #20] uint16_t crc; __IO uint32_t timeout; sfloat f; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800d082: 4b95 ldr r3, [pc, #596] ; (800d2d8 ) 800d084: 681b ldr r3, [r3, #0] 800d086: 69db ldr r3, [r3, #28] 800d088: f003 0308 and.w r3, r3, #8 800d08c: 2b08 cmp r3, #8 800d08e: d103 bne.n 800d098 __HAL_UART_CLEAR_OREFLAG(&huart7); 800d090: 4b91 ldr r3, [pc, #580] ; (800d2d8 ) 800d092: 681b ldr r3, [r3, #0] 800d094: 2208 movs r2, #8 800d096: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800d098: 4b8f ldr r3, [pc, #572] ; (800d2d8 ) 800d09a: 681b ldr r3, [r3, #0] 800d09c: 69db ldr r3, [r3, #28] 800d09e: f003 0301 and.w r3, r3, #1 800d0a2: 2b01 cmp r3, #1 800d0a4: d103 bne.n 800d0ae __HAL_UART_CLEAR_PEFLAG(&huart7); 800d0a6: 4b8c ldr r3, [pc, #560] ; (800d2d8 ) 800d0a8: 681b ldr r3, [r3, #0] 800d0aa: 2201 movs r2, #1 800d0ac: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800d0ae: 4b8a ldr r3, [pc, #552] ; (800d2d8 ) 800d0b0: 681b ldr r3, [r3, #0] 800d0b2: 69db ldr r3, [r3, #28] 800d0b4: f003 0302 and.w r3, r3, #2 800d0b8: 2b02 cmp r3, #2 800d0ba: d103 bne.n 800d0c4 __HAL_UART_CLEAR_FEFLAG(&huart7); 800d0bc: 4b86 ldr r3, [pc, #536] ; (800d2d8 ) 800d0be: 681b ldr r3, [r3, #0] 800d0c0: 2202 movs r2, #2 800d0c2: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800d0c4: 4b84 ldr r3, [pc, #528] ; (800d2d8 ) 800d0c6: 681b ldr r3, [r3, #0] 800d0c8: 69db ldr r3, [r3, #28] 800d0ca: f003 0304 and.w r3, r3, #4 800d0ce: 2b04 cmp r3, #4 800d0d0: d103 bne.n 800d0da __HAL_UART_CLEAR_NEFLAG(&huart7); 800d0d2: 4b81 ldr r3, [pc, #516] ; (800d2d8 ) 800d0d4: 681b ldr r3, [r3, #0] 800d0d6: 2204 movs r2, #4 800d0d8: 621a str r2, [r3, #32] HAL_Delay(20); 800d0da: 2014 movs r0, #20 800d0dc: f000 fcee bl 800dabc TX_OK = RX_OK = UART_ERROR = false; 800d0e0: 2200 movs r2, #0 800d0e2: 4b7e ldr r3, [pc, #504] ; (800d2dc ) 800d0e4: 4611 mov r1, r2 800d0e6: 7019 strb r1, [r3, #0] 800d0e8: 4b7d ldr r3, [pc, #500] ; (800d2e0 ) 800d0ea: 4611 mov r1, r2 800d0ec: 7019 strb r1, [r3, #0] 800d0ee: 4b7d ldr r3, [pc, #500] ; (800d2e4 ) 800d0f0: 701a strb r2, [r3, #0] len = 0; 800d0f2: 2300 movs r3, #0 800d0f4: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 800d0f6: f44f 7280 mov.w r2, #256 ; 0x100 800d0fa: 2100 movs r1, #0 800d0fc: 487a ldr r0, [pc, #488] ; (800d2e8 ) 800d0fe: f005 f90a bl 8012316 iobuf[len++] = ch + 1; 800d102: 8abb ldrh r3, [r7, #20] 800d104: 1c5a adds r2, r3, #1 800d106: 82ba strh r2, [r7, #20] 800d108: 461a mov r2, r3 800d10a: 79fb ldrb r3, [r7, #7] 800d10c: 3301 adds r3, #1 800d10e: b2d9 uxtb r1, r3 800d110: 4b76 ldr r3, [pc, #472] ; (800d2ec ) 800d112: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 800d114: 8abb ldrh r3, [r7, #20] 800d116: 1c5a adds r2, r3, #1 800d118: 82ba strh r2, [r7, #20] 800d11a: 461a mov r2, r3 800d11c: 4b73 ldr r3, [pc, #460] ; (800d2ec ) 800d11e: 2110 movs r1, #16 800d120: 5499 strb r1, [r3, r2] iobuf[len++] = HI(7502); 800d122: 8abb ldrh r3, [r7, #20] 800d124: 1c5a adds r2, r3, #1 800d126: 82ba strh r2, [r7, #20] 800d128: 461a mov r2, r3 800d12a: 4b70 ldr r3, [pc, #448] ; (800d2ec ) 800d12c: 211d movs r1, #29 800d12e: 5499 strb r1, [r3, r2] iobuf[len++] = LO(7502); 800d130: 8abb ldrh r3, [r7, #20] 800d132: 1c5a adds r2, r3, #1 800d134: 82ba strh r2, [r7, #20] 800d136: 461a mov r2, r3 800d138: 4b6c ldr r3, [pc, #432] ; (800d2ec ) 800d13a: 214e movs r1, #78 ; 0x4e 800d13c: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 800d13e: 8abb ldrh r3, [r7, #20] 800d140: 1c5a adds r2, r3, #1 800d142: 82ba strh r2, [r7, #20] 800d144: 461a mov r2, r3 800d146: 4b69 ldr r3, [pc, #420] ; (800d2ec ) 800d148: 2100 movs r1, #0 800d14a: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 800d14c: 8abb ldrh r3, [r7, #20] 800d14e: 1c5a adds r2, r3, #1 800d150: 82ba strh r2, [r7, #20] 800d152: 461a mov r2, r3 800d154: 4b65 ldr r3, [pc, #404] ; (800d2ec ) 800d156: 2101 movs r1, #1 800d158: 5499 strb r1, [r3, r2] iobuf[len++] = 4; 800d15a: 8abb ldrh r3, [r7, #20] 800d15c: 1c5a adds r2, r3, #1 800d15e: 82ba strh r2, [r7, #20] 800d160: 461a mov r2, r3 800d162: 4b62 ldr r3, [pc, #392] ; (800d2ec ) 800d164: 2104 movs r1, #4 800d166: 5499 strb r1, [r3, r2] f.fl = pardata.amplif[ch].SENS; 800d168: 79fb ldrb r3, [r7, #7] 800d16a: 4a61 ldr r2, [pc, #388] ; (800d2f0 ) 800d16c: 015b lsls r3, r3, #5 800d16e: 4413 add r3, r2 800d170: 3318 adds r3, #24 800d172: 681b ldr r3, [r3, #0] 800d174: 60bb str r3, [r7, #8] iobuf[len++] = f.ch[3]; 800d176: 8abb ldrh r3, [r7, #20] 800d178: 1c5a adds r2, r3, #1 800d17a: 82ba strh r2, [r7, #20] 800d17c: 461a mov r2, r3 800d17e: 7af9 ldrb r1, [r7, #11] 800d180: 4b5a ldr r3, [pc, #360] ; (800d2ec ) 800d182: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[2]; 800d184: 8abb ldrh r3, [r7, #20] 800d186: 1c5a adds r2, r3, #1 800d188: 82ba strh r2, [r7, #20] 800d18a: 461a mov r2, r3 800d18c: 7ab9 ldrb r1, [r7, #10] 800d18e: 4b57 ldr r3, [pc, #348] ; (800d2ec ) 800d190: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[1]; 800d192: 8abb ldrh r3, [r7, #20] 800d194: 1c5a adds r2, r3, #1 800d196: 82ba strh r2, [r7, #20] 800d198: 461a mov r2, r3 800d19a: 7a79 ldrb r1, [r7, #9] 800d19c: 4b53 ldr r3, [pc, #332] ; (800d2ec ) 800d19e: 5499 strb r1, [r3, r2] iobuf[len++] = f.ch[0]; 800d1a0: 8abb ldrh r3, [r7, #20] 800d1a2: 1c5a adds r2, r3, #1 800d1a4: 82ba strh r2, [r7, #20] 800d1a6: 461a mov r2, r3 800d1a8: 7a39 ldrb r1, [r7, #8] 800d1aa: 4b50 ldr r3, [pc, #320] ; (800d2ec ) 800d1ac: 5499 strb r1, [r3, r2] crc = Crc16(len); 800d1ae: 8abb ldrh r3, [r7, #20] 800d1b0: 4618 mov r0, r3 800d1b2: f7ff f8a9 bl 800c308 800d1b6: 4603 mov r3, r0 800d1b8: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 800d1ba: 8abb ldrh r3, [r7, #20] 800d1bc: 1c5a adds r2, r3, #1 800d1be: 82ba strh r2, [r7, #20] 800d1c0: 461a mov r2, r3 800d1c2: 8a7b ldrh r3, [r7, #18] 800d1c4: b2d9 uxtb r1, r3 800d1c6: 4b49 ldr r3, [pc, #292] ; (800d2ec ) 800d1c8: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 800d1ca: 8abb ldrh r3, [r7, #20] 800d1cc: 1c5a adds r2, r3, #1 800d1ce: 82ba strh r2, [r7, #20] 800d1d0: 461a mov r2, r3 800d1d2: 8a7b ldrh r3, [r7, #18] 800d1d4: 0a1b lsrs r3, r3, #8 800d1d6: b29b uxth r3, r3 800d1d8: b2d9 uxtb r1, r3 800d1da: 4b44 ldr r3, [pc, #272] ; (800d2ec ) 800d1dc: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 800d1de: f000 fc61 bl 800daa4 800d1e2: 4603 mov r3, r0 800d1e4: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 800d1e6: 2201 movs r2, #1 800d1e8: f44f 7100 mov.w r1, #512 ; 0x200 800d1ec: 4841 ldr r0, [pc, #260] ; (800d2f4 ) 800d1ee: f001 fc4b bl 800ea88 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 800d1f2: 8abb ldrh r3, [r7, #20] 800d1f4: 461a mov r2, r3 800d1f6: 493d ldr r1, [pc, #244] ; (800d2ec ) 800d1f8: 4837 ldr r0, [pc, #220] ; (800d2d8 ) 800d1fa: f003 fd73 bl 8010ce4 800d1fe: 4603 mov r3, r0 800d200: 2b00 cmp r3, #0 800d202: d163 bne.n 800d2cc { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 800d204: bf00 nop 800d206: 4b37 ldr r3, [pc, #220] ; (800d2e4 ) 800d208: 781b ldrb r3, [r3, #0] 800d20a: b2db uxtb r3, r3 800d20c: f083 0301 eor.w r3, r3, #1 800d210: b2db uxtb r3, r3 800d212: 2b00 cmp r3, #0 800d214: d006 beq.n 800d224 800d216: f000 fc45 bl 800daa4 800d21a: 4602 mov r2, r0 800d21c: 68fb ldr r3, [r7, #12] 800d21e: 1ad3 subs r3, r2, r3 800d220: 2bc7 cmp r3, #199 ; 0xc7 800d222: d9f0 bls.n 800d206 if(!TX_OK) 800d224: 4b2f ldr r3, [pc, #188] ; (800d2e4 ) 800d226: 781b ldrb r3, [r3, #0] 800d228: b2db uxtb r3, r3 800d22a: f083 0301 eor.w r3, r3, #1 800d22e: b2db uxtb r3, r3 800d230: 2b00 cmp r3, #0 800d232: d00b beq.n 800d24c { HAL_UART_Abort_IT(&huart7); 800d234: 4828 ldr r0, [pc, #160] ; (800d2d8 ) 800d236: f003 fdc3 bl 8010dc0 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d23a: 2200 movs r2, #0 800d23c: f44f 7100 mov.w r1, #512 ; 0x200 800d240: 482c ldr r0, [pc, #176] ; (800d2f4 ) 800d242: f001 fc21 bl 800ea88 return (-1); 800d246: f04f 33ff mov.w r3, #4294967295 800d24a: e041 b.n 800d2d0 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d24c: 2200 movs r2, #0 800d24e: f44f 7100 mov.w r1, #512 ; 0x200 800d252: 4828 ldr r0, [pc, #160] ; (800d2f4 ) 800d254: f001 fc18 bl 800ea88 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 800d258: 2364 movs r3, #100 ; 0x64 800d25a: 2201 movs r2, #1 800d25c: 4922 ldr r1, [pc, #136] ; (800d2e8 ) 800d25e: 481e ldr r0, [pc, #120] ; (800d2d8 ) 800d260: f003 fc70 bl 8010b44 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 800d264: f44f 73fa mov.w r3, #500 ; 0x1f4 800d268: 2208 movs r2, #8 800d26a: 491f ldr r1, [pc, #124] ; (800d2e8 ) 800d26c: 481a ldr r0, [pc, #104] ; (800d2d8 ) 800d26e: f003 fc69 bl 8010b44 800d272: 4603 mov r3, r0 800d274: 2b00 cmp r3, #0 800d276: d120 bne.n 800d2ba { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 800d278: 4b1b ldr r3, [pc, #108] ; (800d2e8 ) 800d27a: 79db ldrb r3, [r3, #7] 800d27c: 021b lsls r3, r3, #8 800d27e: b21a sxth r2, r3 800d280: 4b19 ldr r3, [pc, #100] ; (800d2e8 ) 800d282: 799b ldrb r3, [r3, #6] 800d284: b21b sxth r3, r3 800d286: 4313 orrs r3, r2 800d288: b21b sxth r3, r3 800d28a: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 800d28c: 2006 movs r0, #6 800d28e: f7ff f867 bl 800c360 800d292: 4603 mov r3, r0 800d294: 461a mov r2, r3 800d296: 8a7b ldrh r3, [r7, #18] 800d298: 4293 cmp r3, r2 800d29a: d10b bne.n 800d2b4 { if(rx[0] == (ch + 1)) 800d29c: 4b12 ldr r3, [pc, #72] ; (800d2e8 ) 800d29e: 781b ldrb r3, [r3, #0] 800d2a0: 461a mov r2, r3 800d2a2: 79fb ldrb r3, [r7, #7] 800d2a4: 3301 adds r3, #1 800d2a6: 429a cmp r2, r3 800d2a8: d101 bne.n 800d2ae return 0; 800d2aa: 2300 movs r3, #0 800d2ac: e010 b.n 800d2d0 else return (-1); 800d2ae: f04f 33ff mov.w r3, #4294967295 800d2b2: e00d b.n 800d2d0 } else { return (-1); 800d2b4: f04f 33ff mov.w r3, #4294967295 800d2b8: e00a b.n 800d2d0 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d2ba: 2200 movs r2, #0 800d2bc: f44f 7100 mov.w r1, #512 ; 0x200 800d2c0: 480c ldr r0, [pc, #48] ; (800d2f4 ) 800d2c2: f001 fbe1 bl 800ea88 return (-1); 800d2c6: f04f 33ff mov.w r3, #4294967295 800d2ca: e001 b.n 800d2d0 } } return res; 800d2cc: f997 3017 ldrsb.w r3, [r7, #23] } 800d2d0: 4618 mov r0, r3 800d2d2: 3718 adds r7, #24 800d2d4: 46bd mov sp, r7 800d2d6: bd80 pop {r7, pc} 800d2d8: 2006bc9c .word 0x2006bc9c 800d2dc: 2006b2f9 .word 0x2006b2f9 800d2e0: 2006b2fb .word 0x2006b2fb 800d2e4: 2006b2fa .word 0x2006b2fa 800d2e8: 2006bd24 .word 0x2006bd24 800d2ec: 2006be2c .word 0x2006be2c 800d2f0: 2006b510 .word 0x2006b510 800d2f4: 40021400 .word 0x40021400 0800d2f8 : int8_t Calibr(uint8_t ch, uint8_t on) { 800d2f8: b580 push {r7, lr} 800d2fa: b086 sub sp, #24 800d2fc: af00 add r7, sp, #0 800d2fe: 4603 mov r3, r0 800d300: 460a mov r2, r1 800d302: 71fb strb r3, [r7, #7] 800d304: 4613 mov r3, r2 800d306: 71bb strb r3, [r7, #6] int8_t res = -1; 800d308: 23ff movs r3, #255 ; 0xff 800d30a: 757b strb r3, [r7, #21] uint16_t i, len = 0; 800d30c: 2300 movs r3, #0 800d30e: 82fb strh r3, [r7, #22] uint16_t crc; uint16_t reg; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800d310: 4b92 ldr r3, [pc, #584] ; (800d55c ) 800d312: 681b ldr r3, [r3, #0] 800d314: 69db ldr r3, [r3, #28] 800d316: f003 0308 and.w r3, r3, #8 800d31a: 2b08 cmp r3, #8 800d31c: d103 bne.n 800d326 __HAL_UART_CLEAR_OREFLAG(&huart7); 800d31e: 4b8f ldr r3, [pc, #572] ; (800d55c ) 800d320: 681b ldr r3, [r3, #0] 800d322: 2208 movs r2, #8 800d324: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800d326: 4b8d ldr r3, [pc, #564] ; (800d55c ) 800d328: 681b ldr r3, [r3, #0] 800d32a: 69db ldr r3, [r3, #28] 800d32c: f003 0301 and.w r3, r3, #1 800d330: 2b01 cmp r3, #1 800d332: d103 bne.n 800d33c __HAL_UART_CLEAR_PEFLAG(&huart7); 800d334: 4b89 ldr r3, [pc, #548] ; (800d55c ) 800d336: 681b ldr r3, [r3, #0] 800d338: 2201 movs r2, #1 800d33a: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800d33c: 4b87 ldr r3, [pc, #540] ; (800d55c ) 800d33e: 681b ldr r3, [r3, #0] 800d340: 69db ldr r3, [r3, #28] 800d342: f003 0302 and.w r3, r3, #2 800d346: 2b02 cmp r3, #2 800d348: d103 bne.n 800d352 __HAL_UART_CLEAR_FEFLAG(&huart7); 800d34a: 4b84 ldr r3, [pc, #528] ; (800d55c ) 800d34c: 681b ldr r3, [r3, #0] 800d34e: 2202 movs r2, #2 800d350: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800d352: 4b82 ldr r3, [pc, #520] ; (800d55c ) 800d354: 681b ldr r3, [r3, #0] 800d356: 69db ldr r3, [r3, #28] 800d358: f003 0304 and.w r3, r3, #4 800d35c: 2b04 cmp r3, #4 800d35e: d103 bne.n 800d368 __HAL_UART_CLEAR_NEFLAG(&huart7); 800d360: 4b7e ldr r3, [pc, #504] ; (800d55c ) 800d362: 681b ldr r3, [r3, #0] 800d364: 2204 movs r2, #4 800d366: 621a str r2, [r3, #32] HAL_Delay(20); 800d368: 2014 movs r0, #20 800d36a: f000 fba7 bl 800dabc TX_OK = RX_OK = UART_ERROR = false; 800d36e: 2200 movs r2, #0 800d370: 4b7b ldr r3, [pc, #492] ; (800d560 ) 800d372: 4611 mov r1, r2 800d374: 7019 strb r1, [r3, #0] 800d376: 4b7b ldr r3, [pc, #492] ; (800d564 ) 800d378: 4611 mov r1, r2 800d37a: 7019 strb r1, [r3, #0] 800d37c: 4b7a ldr r3, [pc, #488] ; (800d568 ) 800d37e: 701a strb r2, [r3, #0] len = 0; 800d380: 2300 movs r3, #0 800d382: 82fb strh r3, [r7, #22] memset((void *) &rx, 0, sizeof(rx)); 800d384: f44f 7280 mov.w r2, #256 ; 0x100 800d388: 2100 movs r1, #0 800d38a: 4878 ldr r0, [pc, #480] ; (800d56c ) 800d38c: f004 ffc3 bl 8012316 iobuf[len++] = ch + 1; 800d390: 8afb ldrh r3, [r7, #22] 800d392: 1c5a adds r2, r3, #1 800d394: 82fa strh r2, [r7, #22] 800d396: 461a mov r2, r3 800d398: 79fb ldrb r3, [r7, #7] 800d39a: 3301 adds r3, #1 800d39c: b2d9 uxtb r1, r3 800d39e: 4b74 ldr r3, [pc, #464] ; (800d570 ) 800d3a0: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 800d3a2: 8afb ldrh r3, [r7, #22] 800d3a4: 1c5a adds r2, r3, #1 800d3a6: 82fa strh r2, [r7, #22] 800d3a8: 461a mov r2, r3 800d3aa: 4b71 ldr r3, [pc, #452] ; (800d570 ) 800d3ac: 2110 movs r1, #16 800d3ae: 5499 strb r1, [r3, r2] iobuf[len++] = HI(3000); 800d3b0: 8afb ldrh r3, [r7, #22] 800d3b2: 1c5a adds r2, r3, #1 800d3b4: 82fa strh r2, [r7, #22] 800d3b6: 461a mov r2, r3 800d3b8: 4b6d ldr r3, [pc, #436] ; (800d570 ) 800d3ba: 210b movs r1, #11 800d3bc: 5499 strb r1, [r3, r2] iobuf[len++] = LO(3000); 800d3be: 8afb ldrh r3, [r7, #22] 800d3c0: 1c5a adds r2, r3, #1 800d3c2: 82fa strh r2, [r7, #22] 800d3c4: 461a mov r2, r3 800d3c6: 4b6a ldr r3, [pc, #424] ; (800d570 ) 800d3c8: 21b8 movs r1, #184 ; 0xb8 800d3ca: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 800d3cc: 8afb ldrh r3, [r7, #22] 800d3ce: 1c5a adds r2, r3, #1 800d3d0: 82fa strh r2, [r7, #22] 800d3d2: 461a mov r2, r3 800d3d4: 4b66 ldr r3, [pc, #408] ; (800d570 ) 800d3d6: 2100 movs r1, #0 800d3d8: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 800d3da: 8afb ldrh r3, [r7, #22] 800d3dc: 1c5a adds r2, r3, #1 800d3de: 82fa strh r2, [r7, #22] 800d3e0: 461a mov r2, r3 800d3e2: 4b63 ldr r3, [pc, #396] ; (800d570 ) 800d3e4: 2101 movs r1, #1 800d3e6: 5499 strb r1, [r3, r2] iobuf[len++] = 2; 800d3e8: 8afb ldrh r3, [r7, #22] 800d3ea: 1c5a adds r2, r3, #1 800d3ec: 82fa strh r2, [r7, #22] 800d3ee: 461a mov r2, r3 800d3f0: 4b5f ldr r3, [pc, #380] ; (800d570 ) 800d3f2: 2102 movs r1, #2 800d3f4: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 800d3f6: 8afb ldrh r3, [r7, #22] 800d3f8: 1c5a adds r2, r3, #1 800d3fa: 82fa strh r2, [r7, #22] 800d3fc: 461a mov r2, r3 800d3fe: 4b5c ldr r3, [pc, #368] ; (800d570 ) 800d400: 2100 movs r1, #0 800d402: 5499 strb r1, [r3, r2] if(on) 800d404: 79bb ldrb r3, [r7, #6] 800d406: 2b00 cmp r3, #0 800d408: d00b beq.n 800d422 iobuf[len++] = menu - 1; 800d40a: 8afb ldrh r3, [r7, #22] 800d40c: 1c5a adds r2, r3, #1 800d40e: 82fa strh r2, [r7, #22] 800d410: 461a mov r2, r3 800d412: 4b58 ldr r3, [pc, #352] ; (800d574 ) 800d414: 781b ldrb r3, [r3, #0] 800d416: b2db uxtb r3, r3 800d418: 3b01 subs r3, #1 800d41a: b2d9 uxtb r1, r3 800d41c: 4b54 ldr r3, [pc, #336] ; (800d570 ) 800d41e: 5499 strb r1, [r3, r2] 800d420: e006 b.n 800d430 else iobuf[len++] = 0; 800d422: 8afb ldrh r3, [r7, #22] 800d424: 1c5a adds r2, r3, #1 800d426: 82fa strh r2, [r7, #22] 800d428: 461a mov r2, r3 800d42a: 4b51 ldr r3, [pc, #324] ; (800d570 ) 800d42c: 2100 movs r1, #0 800d42e: 5499 strb r1, [r3, r2] crc = Crc16(len); 800d430: 8afb ldrh r3, [r7, #22] 800d432: 4618 mov r0, r3 800d434: f7fe ff68 bl 800c308 800d438: 4603 mov r3, r0 800d43a: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 800d43c: 8afb ldrh r3, [r7, #22] 800d43e: 1c5a adds r2, r3, #1 800d440: 82fa strh r2, [r7, #22] 800d442: 461a mov r2, r3 800d444: 8a7b ldrh r3, [r7, #18] 800d446: b2d9 uxtb r1, r3 800d448: 4b49 ldr r3, [pc, #292] ; (800d570 ) 800d44a: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 800d44c: 8afb ldrh r3, [r7, #22] 800d44e: 1c5a adds r2, r3, #1 800d450: 82fa strh r2, [r7, #22] 800d452: 461a mov r2, r3 800d454: 8a7b ldrh r3, [r7, #18] 800d456: 0a1b lsrs r3, r3, #8 800d458: b29b uxth r3, r3 800d45a: b2d9 uxtb r1, r3 800d45c: 4b44 ldr r3, [pc, #272] ; (800d570 ) 800d45e: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 800d460: f000 fb20 bl 800daa4 800d464: 4603 mov r3, r0 800d466: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 800d468: 2201 movs r2, #1 800d46a: f44f 7100 mov.w r1, #512 ; 0x200 800d46e: 4842 ldr r0, [pc, #264] ; (800d578 ) 800d470: f001 fb0a bl 800ea88 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 800d474: 8afb ldrh r3, [r7, #22] 800d476: 461a mov r2, r3 800d478: 493d ldr r1, [pc, #244] ; (800d570 ) 800d47a: 4838 ldr r0, [pc, #224] ; (800d55c ) 800d47c: f003 fc32 bl 8010ce4 800d480: 4603 mov r3, r0 800d482: 2b00 cmp r3, #0 800d484: d163 bne.n 800d54e { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 800d486: bf00 nop 800d488: 4b37 ldr r3, [pc, #220] ; (800d568 ) 800d48a: 781b ldrb r3, [r3, #0] 800d48c: b2db uxtb r3, r3 800d48e: f083 0301 eor.w r3, r3, #1 800d492: b2db uxtb r3, r3 800d494: 2b00 cmp r3, #0 800d496: d006 beq.n 800d4a6 800d498: f000 fb04 bl 800daa4 800d49c: 4602 mov r2, r0 800d49e: 68fb ldr r3, [r7, #12] 800d4a0: 1ad3 subs r3, r2, r3 800d4a2: 2bc7 cmp r3, #199 ; 0xc7 800d4a4: d9f0 bls.n 800d488 if(!TX_OK) 800d4a6: 4b30 ldr r3, [pc, #192] ; (800d568 ) 800d4a8: 781b ldrb r3, [r3, #0] 800d4aa: b2db uxtb r3, r3 800d4ac: f083 0301 eor.w r3, r3, #1 800d4b0: b2db uxtb r3, r3 800d4b2: 2b00 cmp r3, #0 800d4b4: d00b beq.n 800d4ce { HAL_UART_Abort_IT(&huart7); 800d4b6: 4829 ldr r0, [pc, #164] ; (800d55c ) 800d4b8: f003 fc82 bl 8010dc0 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d4bc: 2200 movs r2, #0 800d4be: f44f 7100 mov.w r1, #512 ; 0x200 800d4c2: 482d ldr r0, [pc, #180] ; (800d578 ) 800d4c4: f001 fae0 bl 800ea88 return (-1); 800d4c8: f04f 33ff mov.w r3, #4294967295 800d4cc: e041 b.n 800d552 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d4ce: 2200 movs r2, #0 800d4d0: f44f 7100 mov.w r1, #512 ; 0x200 800d4d4: 4828 ldr r0, [pc, #160] ; (800d578 ) 800d4d6: f001 fad7 bl 800ea88 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 800d4da: 2364 movs r3, #100 ; 0x64 800d4dc: 2201 movs r2, #1 800d4de: 4923 ldr r1, [pc, #140] ; (800d56c ) 800d4e0: 481e ldr r0, [pc, #120] ; (800d55c ) 800d4e2: f003 fb2f bl 8010b44 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 800d4e6: f44f 73fa mov.w r3, #500 ; 0x1f4 800d4ea: 2208 movs r2, #8 800d4ec: 491f ldr r1, [pc, #124] ; (800d56c ) 800d4ee: 481b ldr r0, [pc, #108] ; (800d55c ) 800d4f0: f003 fb28 bl 8010b44 800d4f4: 4603 mov r3, r0 800d4f6: 2b00 cmp r3, #0 800d4f8: d120 bne.n 800d53c { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 800d4fa: 4b1c ldr r3, [pc, #112] ; (800d56c ) 800d4fc: 79db ldrb r3, [r3, #7] 800d4fe: 021b lsls r3, r3, #8 800d500: b21a sxth r2, r3 800d502: 4b1a ldr r3, [pc, #104] ; (800d56c ) 800d504: 799b ldrb r3, [r3, #6] 800d506: b21b sxth r3, r3 800d508: 4313 orrs r3, r2 800d50a: b21b sxth r3, r3 800d50c: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 800d50e: 2006 movs r0, #6 800d510: f7fe ff26 bl 800c360 800d514: 4603 mov r3, r0 800d516: 461a mov r2, r3 800d518: 8a7b ldrh r3, [r7, #18] 800d51a: 4293 cmp r3, r2 800d51c: d10b bne.n 800d536 { if(rx[0] == (ch + 1)) 800d51e: 4b13 ldr r3, [pc, #76] ; (800d56c ) 800d520: 781b ldrb r3, [r3, #0] 800d522: 461a mov r2, r3 800d524: 79fb ldrb r3, [r7, #7] 800d526: 3301 adds r3, #1 800d528: 429a cmp r2, r3 800d52a: d101 bne.n 800d530 return 0; 800d52c: 2300 movs r3, #0 800d52e: e010 b.n 800d552 else return (-1); 800d530: f04f 33ff mov.w r3, #4294967295 800d534: e00d b.n 800d552 } else { return (-1); 800d536: f04f 33ff mov.w r3, #4294967295 800d53a: e00a b.n 800d552 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d53c: 2200 movs r2, #0 800d53e: f44f 7100 mov.w r1, #512 ; 0x200 800d542: 480d ldr r0, [pc, #52] ; (800d578 ) 800d544: f001 faa0 bl 800ea88 return (-1); 800d548: f04f 33ff mov.w r3, #4294967295 800d54c: e001 b.n 800d552 } } return res; 800d54e: f997 3015 ldrsb.w r3, [r7, #21] } 800d552: 4618 mov r0, r3 800d554: 3718 adds r7, #24 800d556: 46bd mov sp, r7 800d558: bd80 pop {r7, pc} 800d55a: bf00 nop 800d55c: 2006bc9c .word 0x2006bc9c 800d560: 2006b2f9 .word 0x2006b2f9 800d564: 2006b2fb .word 0x2006b2fb 800d568: 2006b2fa .word 0x2006b2fa 800d56c: 2006bd24 .word 0x2006bd24 800d570: 2006be2c .word 0x2006be2c 800d574: 20020245 .word 0x20020245 800d578: 40021400 .word 0x40021400 0800d57c : int8_t WriteCorr(uint8_t ch, uint8_t fasecor, uint8_t up) { 800d57c: b580 push {r7, lr} 800d57e: b086 sub sp, #24 800d580: af00 add r7, sp, #0 800d582: 4603 mov r3, r0 800d584: 71fb strb r3, [r7, #7] 800d586: 460b mov r3, r1 800d588: 71bb strb r3, [r7, #6] 800d58a: 4613 mov r3, r2 800d58c: 717b strb r3, [r7, #5] int8_t res = -1; 800d58e: 23ff movs r3, #255 ; 0xff 800d590: 75fb strb r3, [r7, #23] uint16_t i, len = 0; 800d592: 2300 movs r3, #0 800d594: 82bb strh r3, [r7, #20] uint16_t crc; uint16_t reg; __IO uint32_t timeout; if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE)) 800d596: 4b8e ldr r3, [pc, #568] ; (800d7d0 ) 800d598: 681b ldr r3, [r3, #0] 800d59a: 69db ldr r3, [r3, #28] 800d59c: f003 0308 and.w r3, r3, #8 800d5a0: 2b08 cmp r3, #8 800d5a2: d103 bne.n 800d5ac __HAL_UART_CLEAR_OREFLAG(&huart7); 800d5a4: 4b8a ldr r3, [pc, #552] ; (800d7d0 ) 800d5a6: 681b ldr r3, [r3, #0] 800d5a8: 2208 movs r2, #8 800d5aa: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE)) 800d5ac: 4b88 ldr r3, [pc, #544] ; (800d7d0 ) 800d5ae: 681b ldr r3, [r3, #0] 800d5b0: 69db ldr r3, [r3, #28] 800d5b2: f003 0301 and.w r3, r3, #1 800d5b6: 2b01 cmp r3, #1 800d5b8: d103 bne.n 800d5c2 __HAL_UART_CLEAR_PEFLAG(&huart7); 800d5ba: 4b85 ldr r3, [pc, #532] ; (800d7d0 ) 800d5bc: 681b ldr r3, [r3, #0] 800d5be: 2201 movs r2, #1 800d5c0: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE)) 800d5c2: 4b83 ldr r3, [pc, #524] ; (800d7d0 ) 800d5c4: 681b ldr r3, [r3, #0] 800d5c6: 69db ldr r3, [r3, #28] 800d5c8: f003 0302 and.w r3, r3, #2 800d5cc: 2b02 cmp r3, #2 800d5ce: d103 bne.n 800d5d8 __HAL_UART_CLEAR_FEFLAG(&huart7); 800d5d0: 4b7f ldr r3, [pc, #508] ; (800d7d0 ) 800d5d2: 681b ldr r3, [r3, #0] 800d5d4: 2202 movs r2, #2 800d5d6: 621a str r2, [r3, #32] if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE)) 800d5d8: 4b7d ldr r3, [pc, #500] ; (800d7d0 ) 800d5da: 681b ldr r3, [r3, #0] 800d5dc: 69db ldr r3, [r3, #28] 800d5de: f003 0304 and.w r3, r3, #4 800d5e2: 2b04 cmp r3, #4 800d5e4: d103 bne.n 800d5ee __HAL_UART_CLEAR_NEFLAG(&huart7); 800d5e6: 4b7a ldr r3, [pc, #488] ; (800d7d0 ) 800d5e8: 681b ldr r3, [r3, #0] 800d5ea: 2204 movs r2, #4 800d5ec: 621a str r2, [r3, #32] HAL_Delay(20); 800d5ee: 2014 movs r0, #20 800d5f0: f000 fa64 bl 800dabc TX_OK = RX_OK = UART_ERROR = false; 800d5f4: 2200 movs r2, #0 800d5f6: 4b77 ldr r3, [pc, #476] ; (800d7d4 ) 800d5f8: 4611 mov r1, r2 800d5fa: 7019 strb r1, [r3, #0] 800d5fc: 4b76 ldr r3, [pc, #472] ; (800d7d8 ) 800d5fe: 4611 mov r1, r2 800d600: 7019 strb r1, [r3, #0] 800d602: 4b76 ldr r3, [pc, #472] ; (800d7dc ) 800d604: 701a strb r2, [r3, #0] len = 0; 800d606: 2300 movs r3, #0 800d608: 82bb strh r3, [r7, #20] memset((void *) &rx, 0, sizeof(rx)); 800d60a: f44f 7280 mov.w r2, #256 ; 0x100 800d60e: 2100 movs r1, #0 800d610: 4873 ldr r0, [pc, #460] ; (800d7e0 ) 800d612: f004 fe80 bl 8012316 /*if(fasecor == CALIBR_00) { return (-1); }*/ iobuf[len++] = ch + 1; 800d616: 8abb ldrh r3, [r7, #20] 800d618: 1c5a adds r2, r3, #1 800d61a: 82ba strh r2, [r7, #20] 800d61c: 461a mov r2, r3 800d61e: 79fb ldrb r3, [r7, #7] 800d620: 3301 adds r3, #1 800d622: b2d9 uxtb r1, r3 800d624: 4b6f ldr r3, [pc, #444] ; (800d7e4 ) 800d626: 5499 strb r1, [r3, r2] iobuf[len++] = 0x10; 800d628: 8abb ldrh r3, [r7, #20] 800d62a: 1c5a adds r2, r3, #1 800d62c: 82ba strh r2, [r7, #20] 800d62e: 461a mov r2, r3 800d630: 4b6c ldr r3, [pc, #432] ; (800d7e4 ) 800d632: 2110 movs r1, #16 800d634: 5499 strb r1, [r3, r2] iobuf[len++] = HI(fasecor + 3001); 800d636: 8abb ldrh r3, [r7, #20] 800d638: 1c5a adds r2, r3, #1 800d63a: 82ba strh r2, [r7, #20] 800d63c: 461a mov r2, r3 800d63e: 79bb ldrb r3, [r7, #6] 800d640: f603 33b9 addw r3, r3, #3001 ; 0xbb9 800d644: 121b asrs r3, r3, #8 800d646: b2d9 uxtb r1, r3 800d648: 4b66 ldr r3, [pc, #408] ; (800d7e4 ) 800d64a: 5499 strb r1, [r3, r2] iobuf[len++] = LO(fasecor + 3001); 800d64c: 8abb ldrh r3, [r7, #20] 800d64e: 1c5a adds r2, r3, #1 800d650: 82ba strh r2, [r7, #20] 800d652: 461a mov r2, r3 800d654: 79bb ldrb r3, [r7, #6] 800d656: 3b47 subs r3, #71 ; 0x47 800d658: b2d9 uxtb r1, r3 800d65a: 4b62 ldr r3, [pc, #392] ; (800d7e4 ) 800d65c: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 800d65e: 8abb ldrh r3, [r7, #20] 800d660: 1c5a adds r2, r3, #1 800d662: 82ba strh r2, [r7, #20] 800d664: 461a mov r2, r3 800d666: 4b5f ldr r3, [pc, #380] ; (800d7e4 ) 800d668: 2100 movs r1, #0 800d66a: 5499 strb r1, [r3, r2] iobuf[len++] = 1; 800d66c: 8abb ldrh r3, [r7, #20] 800d66e: 1c5a adds r2, r3, #1 800d670: 82ba strh r2, [r7, #20] 800d672: 461a mov r2, r3 800d674: 4b5b ldr r3, [pc, #364] ; (800d7e4 ) 800d676: 2101 movs r1, #1 800d678: 5499 strb r1, [r3, r2] iobuf[len++] = 2; 800d67a: 8abb ldrh r3, [r7, #20] 800d67c: 1c5a adds r2, r3, #1 800d67e: 82ba strh r2, [r7, #20] 800d680: 461a mov r2, r3 800d682: 4b58 ldr r3, [pc, #352] ; (800d7e4 ) 800d684: 2102 movs r1, #2 800d686: 5499 strb r1, [r3, r2] iobuf[len++] = 0; 800d688: 8abb ldrh r3, [r7, #20] 800d68a: 1c5a adds r2, r3, #1 800d68c: 82ba strh r2, [r7, #20] 800d68e: 461a mov r2, r3 800d690: 4b54 ldr r3, [pc, #336] ; (800d7e4 ) 800d692: 2100 movs r1, #0 800d694: 5499 strb r1, [r3, r2] iobuf[len++] = up; 800d696: 8abb ldrh r3, [r7, #20] 800d698: 1c5a adds r2, r3, #1 800d69a: 82ba strh r2, [r7, #20] 800d69c: 4619 mov r1, r3 800d69e: 4a51 ldr r2, [pc, #324] ; (800d7e4 ) 800d6a0: 797b ldrb r3, [r7, #5] 800d6a2: 5453 strb r3, [r2, r1] crc = Crc16(len); 800d6a4: 8abb ldrh r3, [r7, #20] 800d6a6: 4618 mov r0, r3 800d6a8: f7fe fe2e bl 800c308 800d6ac: 4603 mov r3, r0 800d6ae: 827b strh r3, [r7, #18] iobuf[len++] = LO(crc); 800d6b0: 8abb ldrh r3, [r7, #20] 800d6b2: 1c5a adds r2, r3, #1 800d6b4: 82ba strh r2, [r7, #20] 800d6b6: 461a mov r2, r3 800d6b8: 8a7b ldrh r3, [r7, #18] 800d6ba: b2d9 uxtb r1, r3 800d6bc: 4b49 ldr r3, [pc, #292] ; (800d7e4 ) 800d6be: 5499 strb r1, [r3, r2] iobuf[len++] = HI(crc); 800d6c0: 8abb ldrh r3, [r7, #20] 800d6c2: 1c5a adds r2, r3, #1 800d6c4: 82ba strh r2, [r7, #20] 800d6c6: 461a mov r2, r3 800d6c8: 8a7b ldrh r3, [r7, #18] 800d6ca: 0a1b lsrs r3, r3, #8 800d6cc: b29b uxth r3, r3 800d6ce: b2d9 uxtb r1, r3 800d6d0: 4b44 ldr r3, [pc, #272] ; (800d7e4 ) 800d6d2: 5499 strb r1, [r3, r2] timeout = HAL_GetTick(); 800d6d4: f000 f9e6 bl 800daa4 800d6d8: 4603 mov r3, r0 800d6da: 60fb str r3, [r7, #12] HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET); 800d6dc: 2201 movs r2, #1 800d6de: f44f 7100 mov.w r1, #512 ; 0x200 800d6e2: 4841 ldr r0, [pc, #260] ; (800d7e8 ) 800d6e4: f001 f9d0 bl 800ea88 if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK) 800d6e8: 8abb ldrh r3, [r7, #20] 800d6ea: 461a mov r2, r3 800d6ec: 493d ldr r1, [pc, #244] ; (800d7e4 ) 800d6ee: 4838 ldr r0, [pc, #224] ; (800d7d0 ) 800d6f0: f003 faf8 bl 8010ce4 800d6f4: 4603 mov r3, r0 800d6f6: 2b00 cmp r3, #0 800d6f8: d163 bne.n 800d7c2 { while((!TX_OK) && (HAL_GetTick() - timeout < 200)); 800d6fa: bf00 nop 800d6fc: 4b37 ldr r3, [pc, #220] ; (800d7dc ) 800d6fe: 781b ldrb r3, [r3, #0] 800d700: b2db uxtb r3, r3 800d702: f083 0301 eor.w r3, r3, #1 800d706: b2db uxtb r3, r3 800d708: 2b00 cmp r3, #0 800d70a: d006 beq.n 800d71a 800d70c: f000 f9ca bl 800daa4 800d710: 4602 mov r2, r0 800d712: 68fb ldr r3, [r7, #12] 800d714: 1ad3 subs r3, r2, r3 800d716: 2bc7 cmp r3, #199 ; 0xc7 800d718: d9f0 bls.n 800d6fc if(!TX_OK) 800d71a: 4b30 ldr r3, [pc, #192] ; (800d7dc ) 800d71c: 781b ldrb r3, [r3, #0] 800d71e: b2db uxtb r3, r3 800d720: f083 0301 eor.w r3, r3, #1 800d724: b2db uxtb r3, r3 800d726: 2b00 cmp r3, #0 800d728: d00b beq.n 800d742 { HAL_UART_Abort_IT(&huart7); 800d72a: 4829 ldr r0, [pc, #164] ; (800d7d0 ) 800d72c: f003 fb48 bl 8010dc0 HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d730: 2200 movs r2, #0 800d732: f44f 7100 mov.w r1, #512 ; 0x200 800d736: 482c ldr r0, [pc, #176] ; (800d7e8 ) 800d738: f001 f9a6 bl 800ea88 return (-1); 800d73c: f04f 33ff mov.w r3, #4294967295 800d740: e041 b.n 800d7c6 } HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d742: 2200 movs r2, #0 800d744: f44f 7100 mov.w r1, #512 ; 0x200 800d748: 4827 ldr r0, [pc, #156] ; (800d7e8 ) 800d74a: f001 f99d bl 800ea88 HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт 800d74e: 2364 movs r3, #100 ; 0x64 800d750: 2201 movs r2, #1 800d752: 4923 ldr r1, [pc, #140] ; (800d7e0 ) 800d754: 481e ldr r0, [pc, #120] ; (800d7d0 ) 800d756: f003 f9f5 bl 8010b44 if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK) 800d75a: f44f 73fa mov.w r3, #500 ; 0x1f4 800d75e: 2208 movs r2, #8 800d760: 491f ldr r1, [pc, #124] ; (800d7e0 ) 800d762: 481b ldr r0, [pc, #108] ; (800d7d0 ) 800d764: f003 f9ee bl 8010b44 800d768: 4603 mov r3, r0 800d76a: 2b00 cmp r3, #0 800d76c: d120 bne.n 800d7b0 { crc = (uint16_t) ((rx[7]) << 8 | rx[6]); 800d76e: 4b1c ldr r3, [pc, #112] ; (800d7e0 ) 800d770: 79db ldrb r3, [r3, #7] 800d772: 021b lsls r3, r3, #8 800d774: b21a sxth r2, r3 800d776: 4b1a ldr r3, [pc, #104] ; (800d7e0 ) 800d778: 799b ldrb r3, [r3, #6] 800d77a: b21b sxth r3, r3 800d77c: 4313 orrs r3, r2 800d77e: b21b sxth r3, r3 800d780: 827b strh r3, [r7, #18] if(crc == Crc16_RX(6)) 800d782: 2006 movs r0, #6 800d784: f7fe fdec bl 800c360 800d788: 4603 mov r3, r0 800d78a: 461a mov r2, r3 800d78c: 8a7b ldrh r3, [r7, #18] 800d78e: 4293 cmp r3, r2 800d790: d10b bne.n 800d7aa { if(rx[0] == (ch + 1)) 800d792: 4b13 ldr r3, [pc, #76] ; (800d7e0 ) 800d794: 781b ldrb r3, [r3, #0] 800d796: 461a mov r2, r3 800d798: 79fb ldrb r3, [r7, #7] 800d79a: 3301 adds r3, #1 800d79c: 429a cmp r2, r3 800d79e: d101 bne.n 800d7a4 return 0; 800d7a0: 2300 movs r3, #0 800d7a2: e010 b.n 800d7c6 else return (-1); 800d7a4: f04f 33ff mov.w r3, #4294967295 800d7a8: e00d b.n 800d7c6 } else { return (-1); 800d7aa: f04f 33ff mov.w r3, #4294967295 800d7ae: e00a b.n 800d7c6 } } else { HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET); 800d7b0: 2200 movs r2, #0 800d7b2: f44f 7100 mov.w r1, #512 ; 0x200 800d7b6: 480c ldr r0, [pc, #48] ; (800d7e8 ) 800d7b8: f001 f966 bl 800ea88 return (-1); 800d7bc: f04f 33ff mov.w r3, #4294967295 800d7c0: e001 b.n 800d7c6 } } return res; 800d7c2: f997 3017 ldrsb.w r3, [r7, #23] } 800d7c6: 4618 mov r0, r3 800d7c8: 3718 adds r7, #24 800d7ca: 46bd mov sp, r7 800d7cc: bd80 pop {r7, pc} 800d7ce: bf00 nop 800d7d0: 2006bc9c .word 0x2006bc9c 800d7d4: 2006b2f9 .word 0x2006b2f9 800d7d8: 2006b2fb .word 0x2006b2fb 800d7dc: 2006b2fa .word 0x2006b2fa 800d7e0: 2006bd24 .word 0x2006bd24 800d7e4: 2006be2c .word 0x2006be2c 800d7e8: 40021400 .word 0x40021400 0800d7ec : } } void CalibrOFF(void) { 800d7ec: b580 push {r7, lr} 800d7ee: b084 sub sp, #16 800d7f0: af00 add r7, sp, #0 uint8_t i, ch; uint32_t MASK_CHANNELS = 0; 800d7f2: 2300 movs r3, #0 800d7f4: 60bb str r3, [r7, #8] uint32_t CNT_CHANNELS = 0; 800d7f6: 2300 movs r3, #0 800d7f8: 607b str r3, [r7, #4] for(ch = 0; ch < 4; ch++) 800d7fa: 2300 movs r3, #0 800d7fc: 73bb strb r3, [r7, #14] 800d7fe: e01f b.n 800d840 { for(i = 0; i < 3; i++) 800d800: 2300 movs r3, #0 800d802: 73fb strb r3, [r7, #15] 800d804: e016 b.n 800d834 { if(Calibr(ch, 0) == 0) 800d806: 7bbb ldrb r3, [r7, #14] 800d808: 2100 movs r1, #0 800d80a: 4618 mov r0, r3 800d80c: f7ff fd74 bl 800d2f8 800d810: 4603 mov r3, r0 800d812: 2b00 cmp r3, #0 800d814: d10b bne.n 800d82e { MASK_CHANNELS |= (1 << ch); 800d816: 7bbb ldrb r3, [r7, #14] 800d818: 2201 movs r2, #1 800d81a: fa02 f303 lsl.w r3, r2, r3 800d81e: 461a mov r2, r3 800d820: 68bb ldr r3, [r7, #8] 800d822: 4313 orrs r3, r2 800d824: 60bb str r3, [r7, #8] CNT_CHANNELS++; 800d826: 687b ldr r3, [r7, #4] 800d828: 3301 adds r3, #1 800d82a: 607b str r3, [r7, #4] break; 800d82c: e005 b.n 800d83a for(i = 0; i < 3; i++) 800d82e: 7bfb ldrb r3, [r7, #15] 800d830: 3301 adds r3, #1 800d832: 73fb strb r3, [r7, #15] 800d834: 7bfb ldrb r3, [r7, #15] 800d836: 2b02 cmp r3, #2 800d838: d9e5 bls.n 800d806 for(ch = 0; ch < 4; ch++) 800d83a: 7bbb ldrb r3, [r7, #14] 800d83c: 3301 adds r3, #1 800d83e: 73bb strb r3, [r7, #14] 800d840: 7bbb ldrb r3, [r7, #14] 800d842: 2b03 cmp r3, #3 800d844: d9dc bls.n 800d800 } } } } 800d846: bf00 nop 800d848: 3710 adds r7, #16 800d84a: 46bd mov sp, r7 800d84c: bd80 pop {r7, pc} ... 0800d850 : void AskChannels(void) { 800d850: b580 push {r7, lr} 800d852: b082 sub sp, #8 800d854: af00 add r7, sp, #0 uint8_t i, ch; ASK_COMPLETE = false; 800d856: 4b46 ldr r3, [pc, #280] ; (800d970 ) 800d858: 2200 movs r2, #0 800d85a: 701a strb r2, [r3, #0] for(i = 0; i < 100; i++) 800d85c: 2300 movs r3, #0 800d85e: 71fb strb r3, [r7, #7] 800d860: e007 b.n 800d872 { RedrawScreen(); 800d862: f7f7 fef1 bl 8005648 HAL_Delay(10); 800d866: 200a movs r0, #10 800d868: f000 f928 bl 800dabc for(i = 0; i < 100; i++) 800d86c: 79fb ldrb r3, [r7, #7] 800d86e: 3301 adds r3, #1 800d870: 71fb strb r3, [r7, #7] 800d872: 79fb ldrb r3, [r7, #7] 800d874: 2b63 cmp r3, #99 ; 0x63 800d876: d9f4 bls.n 800d862 } ip_assigned = false; 800d878: 4b3e ldr r3, [pc, #248] ; (800d974 ) 800d87a: 2200 movs r2, #0 800d87c: 701a strb r2, [r3, #0] for(i = 0; i < 2; i++) 800d87e: 2300 movs r3, #0 800d880: 71fb strb r3, [r7, #7] 800d882: e00e b.n 800d8a2 { if(ReadIP() == 0) { 800d884: f7fe fde4 bl 800c450 800d888: 4603 mov r3, r0 800d88a: 2b00 cmp r3, #0 800d88c: d103 bne.n 800d896 ip_assigned = true; 800d88e: 4b39 ldr r3, [pc, #228] ; (800d974 ) 800d890: 2201 movs r2, #1 800d892: 701a strb r2, [r3, #0] break; 800d894: e008 b.n 800d8a8 } HAL_Delay(50); 800d896: 2032 movs r0, #50 ; 0x32 800d898: f000 f910 bl 800dabc for(i = 0; i < 2; i++) 800d89c: 79fb ldrb r3, [r7, #7] 800d89e: 3301 adds r3, #1 800d8a0: 71fb strb r3, [r7, #7] 800d8a2: 79fb ldrb r3, [r7, #7] 800d8a4: 2b01 cmp r3, #1 800d8a6: d9ed bls.n 800d884 } memset((void *) &pardata.amplif[0], 0, sizeof(AmplifData_TypeDef) * 16u); 800d8a8: f44f 7200 mov.w r2, #512 ; 0x200 800d8ac: 2100 movs r1, #0 800d8ae: 4832 ldr r0, [pc, #200] ; (800d978 ) 800d8b0: f004 fd31 bl 8012316 MASK_CHANNELS = CNT_CHANNELS = ACTIVE_CHANNEL = 0; 800d8b4: 2300 movs r3, #0 800d8b6: 4a31 ldr r2, [pc, #196] ; (800d97c ) 800d8b8: 6013 str r3, [r2, #0] 800d8ba: 4a31 ldr r2, [pc, #196] ; (800d980 ) 800d8bc: 6013 str r3, [r2, #0] 800d8be: 4a31 ldr r2, [pc, #196] ; (800d984 ) 800d8c0: 6013 str r3, [r2, #0] for(ch = 0; ch < 8; ch++) 800d8c2: 2300 movs r3, #0 800d8c4: 71bb strb r3, [r7, #6] 800d8c6: e02a b.n 800d91e { for(i = 0; i < 2; i++) 800d8c8: 2300 movs r3, #0 800d8ca: 71fb strb r3, [r7, #7] 800d8cc: e021 b.n 800d912 { if(ReadChannel(ch) == 0) 800d8ce: 79bb ldrb r3, [r7, #6] 800d8d0: 4618 mov r0, r3 800d8d2: f7fe fedb bl 800c68c 800d8d6: 4603 mov r3, r0 800d8d8: 2b00 cmp r3, #0 800d8da: d115 bne.n 800d908 { RedrawScreen(); 800d8dc: f7f7 feb4 bl 8005648 MASK_CHANNELS |= (1 << ch); 800d8e0: 79bb ldrb r3, [r7, #6] 800d8e2: 2201 movs r2, #1 800d8e4: fa02 f303 lsl.w r3, r2, r3 800d8e8: 461a mov r2, r3 800d8ea: 4b26 ldr r3, [pc, #152] ; (800d984 ) 800d8ec: 681b ldr r3, [r3, #0] 800d8ee: 4313 orrs r3, r2 800d8f0: 4a24 ldr r2, [pc, #144] ; (800d984 ) 800d8f2: 6013 str r3, [r2, #0] CNT_CHANNELS++; 800d8f4: 4b22 ldr r3, [pc, #136] ; (800d980 ) 800d8f6: 681b ldr r3, [r3, #0] 800d8f8: 3301 adds r3, #1 800d8fa: 4a21 ldr r2, [pc, #132] ; (800d980 ) 800d8fc: 6013 str r3, [r2, #0] ReadChannelSens(ch); 800d8fe: 79bb ldrb r3, [r7, #6] 800d900: 4618 mov r0, r3 800d902: f7ff fa83 bl 800ce0c break; 800d906: e007 b.n 800d918 } else RedrawScreen(); 800d908: f7f7 fe9e bl 8005648 for(i = 0; i < 2; i++) 800d90c: 79fb ldrb r3, [r7, #7] 800d90e: 3301 adds r3, #1 800d910: 71fb strb r3, [r7, #7] 800d912: 79fb ldrb r3, [r7, #7] 800d914: 2b01 cmp r3, #1 800d916: d9da bls.n 800d8ce for(ch = 0; ch < 8; ch++) 800d918: 79bb ldrb r3, [r7, #6] 800d91a: 3301 adds r3, #1 800d91c: 71bb strb r3, [r7, #6] 800d91e: 79bb ldrb r3, [r7, #6] 800d920: 2b07 cmp r3, #7 800d922: d9d1 bls.n 800d8c8 } } if(CNT_CHANNELS != 0) 800d924: 4b16 ldr r3, [pc, #88] ; (800d980 ) 800d926: 681b ldr r3, [r3, #0] 800d928: 2b00 cmp r3, #0 800d92a: d019 beq.n 800d960 { for(i = 0; i < 8; i++) 800d92c: 2300 movs r3, #0 800d92e: 71fb strb r3, [r7, #7] 800d930: e010 b.n 800d954 { if(MASK_CHANNELS & (1 << i)) 800d932: 79fb ldrb r3, [r7, #7] 800d934: 2201 movs r2, #1 800d936: fa02 f303 lsl.w r3, r2, r3 800d93a: 461a mov r2, r3 800d93c: 4b11 ldr r3, [pc, #68] ; (800d984 ) 800d93e: 681b ldr r3, [r3, #0] 800d940: 4013 ands r3, r2 800d942: 2b00 cmp r3, #0 800d944: d003 beq.n 800d94e { ACTIVE_CHANNEL = i; 800d946: 79fb ldrb r3, [r7, #7] 800d948: 4a0c ldr r2, [pc, #48] ; (800d97c ) 800d94a: 6013 str r3, [r2, #0] break; 800d94c: e005 b.n 800d95a for(i = 0; i < 8; i++) 800d94e: 79fb ldrb r3, [r7, #7] 800d950: 3301 adds r3, #1 800d952: 71fb strb r3, [r7, #7] 800d954: 79fb ldrb r3, [r7, #7] 800d956: 2b07 cmp r3, #7 800d958: d9eb bls.n 800d932 } } ASK_COMPLETE = true; 800d95a: 4b05 ldr r3, [pc, #20] ; (800d970 ) 800d95c: 2201 movs r2, #1 800d95e: 701a strb r2, [r3, #0] { //Off(); } HAL_Delay(2000); 800d960: f44f 60fa mov.w r0, #2000 ; 0x7d0 800d964: f000 f8aa bl 800dabc //MASK_CHANNELS = 0xf; //TODO Удалить //CNT_CHANNELS = 4; //TODO Удалить } 800d968: bf00 nop 800d96a: 3708 adds r7, #8 800d96c: 46bd mov sp, r7 800d96e: bd80 pop {r7, pc} 800d970: 2006b2f8 .word 0x2006b2f8 800d974: 2006b2fc .word 0x2006b2fc 800d978: 2006b510 .word 0x2006b510 800d97c: 2006b2d0 .word 0x2006b2d0 800d980: 2006b2d4 .word 0x2006b2d4 800d984: 20020028 .word 0x20020028 0800d988 : void AskPeriodic(void) { 800d988: b580 push {r7, lr} 800d98a: b082 sub sp, #8 800d98c: af00 add r7, sp, #0 uint8_t ch; for(ch = 0; ch < 8; ch++) 800d98e: 2300 movs r3, #0 800d990: 71fb strb r3, [r7, #7] 800d992: e01c b.n 800d9ce { if(MASK_CHANNELS & (1 << ch)) 800d994: 79fb ldrb r3, [r7, #7] 800d996: 2201 movs r2, #1 800d998: fa02 f303 lsl.w r3, r2, r3 800d99c: 461a mov r2, r3 800d99e: 4b0f ldr r3, [pc, #60] ; (800d9dc ) 800d9a0: 681b ldr r3, [r3, #0] 800d9a2: 4013 ands r3, r2 800d9a4: 2b00 cmp r3, #0 800d9a6: d00f beq.n 800d9c8 { if(!focused) 800d9a8: 4b0d ldr r3, [pc, #52] ; (800d9e0 ) 800d9aa: 781b ldrb r3, [r3, #0] 800d9ac: b2db uxtb r3, r3 800d9ae: f083 0301 eor.w r3, r3, #1 800d9b2: b2db uxtb r3, r3 800d9b4: 2b00 cmp r3, #0 800d9b6: d007 beq.n 800d9c8 { ReadChannel(ch); 800d9b8: 79fb ldrb r3, [r7, #7] 800d9ba: 4618 mov r0, r3 800d9bc: f7fe fe66 bl 800c68c ReadChannelSens(ch); 800d9c0: 79fb ldrb r3, [r7, #7] 800d9c2: 4618 mov r0, r3 800d9c4: f7ff fa22 bl 800ce0c for(ch = 0; ch < 8; ch++) 800d9c8: 79fb ldrb r3, [r7, #7] 800d9ca: 3301 adds r3, #1 800d9cc: 71fb strb r3, [r7, #7] 800d9ce: 79fb ldrb r3, [r7, #7] 800d9d0: 2b07 cmp r3, #7 800d9d2: d9df bls.n 800d994 } } } } 800d9d4: bf00 nop 800d9d6: 3708 adds r7, #8 800d9d8: 46bd mov sp, r7 800d9da: bd80 pop {r7, pc} 800d9dc: 20020028 .word 0x20020028 800d9e0: 20020250 .word 0x20020250 0800d9e4 : * need to ensure that the SysTick time base is always set to 1 millisecond * to have correct HAL operation. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { 800d9e4: b580 push {r7, lr} 800d9e6: af00 add r7, sp, #0 /* Configure Instruction cache through ART accelerator */ #if (ART_ACCLERATOR_ENABLE != 0) __HAL_FLASH_ART_ENABLE(); 800d9e8: 4a0b ldr r2, [pc, #44] ; (800da18 ) 800d9ea: 4b0b ldr r3, [pc, #44] ; (800da18 ) 800d9ec: 681b ldr r3, [r3, #0] 800d9ee: f443 7300 orr.w r3, r3, #512 ; 0x200 800d9f2: 6013 str r3, [r2, #0] #endif /* ART_ACCLERATOR_ENABLE */ /* Configure Flash prefetch */ #if (PREFETCH_ENABLE != 0U) __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); 800d9f4: 4a08 ldr r2, [pc, #32] ; (800da18 ) 800d9f6: 4b08 ldr r3, [pc, #32] ; (800da18 ) 800d9f8: 681b ldr r3, [r3, #0] 800d9fa: f443 7380 orr.w r3, r3, #256 ; 0x100 800d9fe: 6013 str r3, [r2, #0] #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); 800da00: 2003 movs r0, #3 800da02: f000 f96d bl 800dce0 /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ HAL_InitTick(TICK_INT_PRIORITY); 800da06: 2000 movs r0, #0 800da08: f000 f808 bl 800da1c /* Init the low level hardware */ HAL_MspInit(); 800da0c: f7fe f988 bl 800bd20 /* Return function status */ return HAL_OK; 800da10: 2300 movs r3, #0 } 800da12: 4618 mov r0, r3 800da14: bd80 pop {r7, pc} 800da16: bf00 nop 800da18: 40023c00 .word 0x40023c00 0800da1c : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { 800da1c: b580 push {r7, lr} 800da1e: b082 sub sp, #8 800da20: af00 add r7, sp, #0 800da22: 6078 str r0, [r7, #4] /* Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) 800da24: 4b12 ldr r3, [pc, #72] ; (800da70 ) 800da26: 681a ldr r2, [r3, #0] 800da28: 4b12 ldr r3, [pc, #72] ; (800da74 ) 800da2a: 781b ldrb r3, [r3, #0] 800da2c: 4619 mov r1, r3 800da2e: f44f 737a mov.w r3, #1000 ; 0x3e8 800da32: fbb3 f3f1 udiv r3, r3, r1 800da36: fbb2 f3f3 udiv r3, r2, r3 800da3a: 4618 mov r0, r3 800da3c: f000 f993 bl 800dd66 800da40: 4603 mov r3, r0 800da42: 2b00 cmp r3, #0 800da44: d001 beq.n 800da4a { return HAL_ERROR; 800da46: 2301 movs r3, #1 800da48: e00e b.n 800da68 } /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) 800da4a: 687b ldr r3, [r7, #4] 800da4c: 2b0f cmp r3, #15 800da4e: d80a bhi.n 800da66 { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); 800da50: 2200 movs r2, #0 800da52: 6879 ldr r1, [r7, #4] 800da54: f04f 30ff mov.w r0, #4294967295 800da58: f000 f94d bl 800dcf6 uwTickPrio = TickPriority; 800da5c: 4a06 ldr r2, [pc, #24] ; (800da78 ) 800da5e: 687b ldr r3, [r7, #4] 800da60: 6013 str r3, [r2, #0] { return HAL_ERROR; } /* Return function status */ return HAL_OK; 800da62: 2300 movs r3, #0 800da64: e000 b.n 800da68 return HAL_ERROR; 800da66: 2301 movs r3, #1 } 800da68: 4618 mov r0, r3 800da6a: 3708 adds r7, #8 800da6c: 46bd mov sp, r7 800da6e: bd80 pop {r7, pc} 800da70: 20020214 .word 0x20020214 800da74: 20020224 .word 0x20020224 800da78: 20020220 .word 0x20020220 0800da7c : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval None */ __weak void HAL_IncTick(void) { 800da7c: b480 push {r7} 800da7e: af00 add r7, sp, #0 uwTick += uwTickFreq; 800da80: 4b06 ldr r3, [pc, #24] ; (800da9c ) 800da82: 781b ldrb r3, [r3, #0] 800da84: 461a mov r2, r3 800da86: 4b06 ldr r3, [pc, #24] ; (800daa0 ) 800da88: 681b ldr r3, [r3, #0] 800da8a: 4413 add r3, r2 800da8c: 4a04 ldr r2, [pc, #16] ; (800daa0 ) 800da8e: 6013 str r3, [r2, #0] } 800da90: bf00 nop 800da92: 46bd mov sp, r7 800da94: f85d 7b04 ldr.w r7, [sp], #4 800da98: 4770 bx lr 800da9a: bf00 nop 800da9c: 20020224 .word 0x20020224 800daa0: 2006bf2c .word 0x2006bf2c 0800daa4 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval tick value */ __weak uint32_t HAL_GetTick(void) { 800daa4: b480 push {r7} 800daa6: af00 add r7, sp, #0 return uwTick; 800daa8: 4b03 ldr r3, [pc, #12] ; (800dab8 ) 800daaa: 681b ldr r3, [r3, #0] } 800daac: 4618 mov r0, r3 800daae: 46bd mov sp, r7 800dab0: f85d 7b04 ldr.w r7, [sp], #4 800dab4: 4770 bx lr 800dab6: bf00 nop 800dab8: 2006bf2c .word 0x2006bf2c 0800dabc : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { 800dabc: b580 push {r7, lr} 800dabe: b084 sub sp, #16 800dac0: af00 add r7, sp, #0 800dac2: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); 800dac4: f7ff ffee bl 800daa4 800dac8: 60b8 str r0, [r7, #8] uint32_t wait = Delay; 800daca: 687b ldr r3, [r7, #4] 800dacc: 60fb str r3, [r7, #12] /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) 800dace: 68fb ldr r3, [r7, #12] 800dad0: f1b3 3fff cmp.w r3, #4294967295 800dad4: d005 beq.n 800dae2 { wait += (uint32_t)(uwTickFreq); 800dad6: 4b09 ldr r3, [pc, #36] ; (800dafc ) 800dad8: 781b ldrb r3, [r3, #0] 800dada: 461a mov r2, r3 800dadc: 68fb ldr r3, [r7, #12] 800dade: 4413 add r3, r2 800dae0: 60fb str r3, [r7, #12] } while ((HAL_GetTick() - tickstart) < wait) 800dae2: bf00 nop 800dae4: f7ff ffde bl 800daa4 800dae8: 4602 mov r2, r0 800daea: 68bb ldr r3, [r7, #8] 800daec: 1ad2 subs r2, r2, r3 800daee: 68fb ldr r3, [r7, #12] 800daf0: 429a cmp r2, r3 800daf2: d3f7 bcc.n 800dae4 { } } 800daf4: bf00 nop 800daf6: 3710 adds r7, #16 800daf8: 46bd mov sp, r7 800dafa: bd80 pop {r7, pc} 800dafc: 20020224 .word 0x20020224 0800db00 <__NVIC_SetPriorityGrouping>: In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. \param [in] PriorityGroup Priority grouping field. */ __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { 800db00: b480 push {r7} 800db02: b085 sub sp, #20 800db04: af00 add r7, sp, #0 800db06: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ 800db08: 687b ldr r3, [r7, #4] 800db0a: f003 0307 and.w r3, r3, #7 800db0e: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ 800db10: 4b0b ldr r3, [pc, #44] ; (800db40 <__NVIC_SetPriorityGrouping+0x40>) 800db12: 68db ldr r3, [r3, #12] 800db14: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ 800db16: 68ba ldr r2, [r7, #8] 800db18: f64f 03ff movw r3, #63743 ; 0xf8ff 800db1c: 4013 ands r3, r2 800db1e: 60bb str r3, [r7, #8] reg_value = (reg_value | ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ 800db20: 68fb ldr r3, [r7, #12] 800db22: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | 800db24: 68bb ldr r3, [r7, #8] 800db26: 431a orrs r2, r3 reg_value = (reg_value | 800db28: 4b06 ldr r3, [pc, #24] ; (800db44 <__NVIC_SetPriorityGrouping+0x44>) 800db2a: 4313 orrs r3, r2 800db2c: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; 800db2e: 4a04 ldr r2, [pc, #16] ; (800db40 <__NVIC_SetPriorityGrouping+0x40>) 800db30: 68bb ldr r3, [r7, #8] 800db32: 60d3 str r3, [r2, #12] } 800db34: bf00 nop 800db36: 3714 adds r7, #20 800db38: 46bd mov sp, r7 800db3a: f85d 7b04 ldr.w r7, [sp], #4 800db3e: 4770 bx lr 800db40: e000ed00 .word 0xe000ed00 800db44: 05fa0000 .word 0x05fa0000 0800db48 <__NVIC_GetPriorityGrouping>: \brief Get Priority Grouping \details Reads the priority grouping field from the NVIC Interrupt Controller. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). */ __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) { 800db48: b480 push {r7} 800db4a: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); 800db4c: 4b04 ldr r3, [pc, #16] ; (800db60 <__NVIC_GetPriorityGrouping+0x18>) 800db4e: 68db ldr r3, [r3, #12] 800db50: 0a1b lsrs r3, r3, #8 800db52: f003 0307 and.w r3, r3, #7 } 800db56: 4618 mov r0, r3 800db58: 46bd mov sp, r7 800db5a: f85d 7b04 ldr.w r7, [sp], #4 800db5e: 4770 bx lr 800db60: e000ed00 .word 0xe000ed00 0800db64 <__NVIC_EnableIRQ>: \details Enables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) { 800db64: b480 push {r7} 800db66: b083 sub sp, #12 800db68: af00 add r7, sp, #0 800db6a: 4603 mov r3, r0 800db6c: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 800db6e: f997 3007 ldrsb.w r3, [r7, #7] 800db72: 2b00 cmp r3, #0 800db74: db0b blt.n 800db8e <__NVIC_EnableIRQ+0x2a> { NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); 800db76: 4909 ldr r1, [pc, #36] ; (800db9c <__NVIC_EnableIRQ+0x38>) 800db78: f997 3007 ldrsb.w r3, [r7, #7] 800db7c: 095b lsrs r3, r3, #5 800db7e: 79fa ldrb r2, [r7, #7] 800db80: f002 021f and.w r2, r2, #31 800db84: 2001 movs r0, #1 800db86: fa00 f202 lsl.w r2, r0, r2 800db8a: f841 2023 str.w r2, [r1, r3, lsl #2] } } 800db8e: bf00 nop 800db90: 370c adds r7, #12 800db92: 46bd mov sp, r7 800db94: f85d 7b04 ldr.w r7, [sp], #4 800db98: 4770 bx lr 800db9a: bf00 nop 800db9c: e000e100 .word 0xe000e100 0800dba0 <__NVIC_DisableIRQ>: \details Disables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) { 800dba0: b480 push {r7} 800dba2: b083 sub sp, #12 800dba4: af00 add r7, sp, #0 800dba6: 4603 mov r3, r0 800dba8: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 800dbaa: f997 3007 ldrsb.w r3, [r7, #7] 800dbae: 2b00 cmp r3, #0 800dbb0: db10 blt.n 800dbd4 <__NVIC_DisableIRQ+0x34> { NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); 800dbb2: 490b ldr r1, [pc, #44] ; (800dbe0 <__NVIC_DisableIRQ+0x40>) 800dbb4: f997 3007 ldrsb.w r3, [r7, #7] 800dbb8: 095b lsrs r3, r3, #5 800dbba: 79fa ldrb r2, [r7, #7] 800dbbc: f002 021f and.w r2, r2, #31 800dbc0: 2001 movs r0, #1 800dbc2: fa00 f202 lsl.w r2, r0, r2 800dbc6: 3320 adds r3, #32 800dbc8: f841 2023 str.w r2, [r1, r3, lsl #2] \details Acts as a special kind of Data Memory Barrier. It completes when all explicit memory accesses before this instruction complete. */ __STATIC_FORCEINLINE void __DSB(void) { __ASM volatile ("dsb 0xF":::"memory"); 800dbcc: f3bf 8f4f dsb sy __ASM volatile ("isb 0xF":::"memory"); 800dbd0: f3bf 8f6f isb sy __DSB(); __ISB(); } } 800dbd4: bf00 nop 800dbd6: 370c adds r7, #12 800dbd8: 46bd mov sp, r7 800dbda: f85d 7b04 ldr.w r7, [sp], #4 800dbde: 4770 bx lr 800dbe0: e000e100 .word 0xe000e100 0800dbe4 <__NVIC_SetPriority>: \param [in] IRQn Interrupt number. \param [in] priority Priority to set. \note The priority cannot be set for every processor exception. */ __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) { 800dbe4: b480 push {r7} 800dbe6: b083 sub sp, #12 800dbe8: af00 add r7, sp, #0 800dbea: 4603 mov r3, r0 800dbec: 6039 str r1, [r7, #0] 800dbee: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) 800dbf0: f997 3007 ldrsb.w r3, [r7, #7] 800dbf4: 2b00 cmp r3, #0 800dbf6: db0a blt.n 800dc0e <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 800dbf8: 490d ldr r1, [pc, #52] ; (800dc30 <__NVIC_SetPriority+0x4c>) 800dbfa: f997 3007 ldrsb.w r3, [r7, #7] 800dbfe: 683a ldr r2, [r7, #0] 800dc00: b2d2 uxtb r2, r2 800dc02: 0112 lsls r2, r2, #4 800dc04: b2d2 uxtb r2, r2 800dc06: 440b add r3, r1 800dc08: f883 2300 strb.w r2, [r3, #768] ; 0x300 } else { SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); } } 800dc0c: e00a b.n 800dc24 <__NVIC_SetPriority+0x40> SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); 800dc0e: 4909 ldr r1, [pc, #36] ; (800dc34 <__NVIC_SetPriority+0x50>) 800dc10: 79fb ldrb r3, [r7, #7] 800dc12: f003 030f and.w r3, r3, #15 800dc16: 3b04 subs r3, #4 800dc18: 683a ldr r2, [r7, #0] 800dc1a: b2d2 uxtb r2, r2 800dc1c: 0112 lsls r2, r2, #4 800dc1e: b2d2 uxtb r2, r2 800dc20: 440b add r3, r1 800dc22: 761a strb r2, [r3, #24] } 800dc24: bf00 nop 800dc26: 370c adds r7, #12 800dc28: 46bd mov sp, r7 800dc2a: f85d 7b04 ldr.w r7, [sp], #4 800dc2e: 4770 bx lr 800dc30: e000e100 .word 0xe000e100 800dc34: e000ed00 .word 0xe000ed00 0800dc38 : \param [in] PreemptPriority Preemptive priority value (starting from 0). \param [in] SubPriority Subpriority value (starting from 0). \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). */ __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) { 800dc38: b480 push {r7} 800dc3a: b089 sub sp, #36 ; 0x24 800dc3c: af00 add r7, sp, #0 800dc3e: 60f8 str r0, [r7, #12] 800dc40: 60b9 str r1, [r7, #8] 800dc42: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ 800dc44: 68fb ldr r3, [r7, #12] 800dc46: f003 0307 and.w r3, r3, #7 800dc4a: 61fb str r3, [r7, #28] uint32_t PreemptPriorityBits; uint32_t SubPriorityBits; PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); 800dc4c: 69fb ldr r3, [r7, #28] 800dc4e: f1c3 0307 rsb r3, r3, #7 800dc52: 2b04 cmp r3, #4 800dc54: bf28 it cs 800dc56: 2304 movcs r3, #4 800dc58: 61bb str r3, [r7, #24] SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); 800dc5a: 69fb ldr r3, [r7, #28] 800dc5c: 3304 adds r3, #4 800dc5e: 2b06 cmp r3, #6 800dc60: d902 bls.n 800dc68 800dc62: 69fb ldr r3, [r7, #28] 800dc64: 3b03 subs r3, #3 800dc66: e000 b.n 800dc6a 800dc68: 2300 movs r3, #0 800dc6a: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | 800dc6c: 2201 movs r2, #1 800dc6e: 69bb ldr r3, [r7, #24] 800dc70: fa02 f303 lsl.w r3, r2, r3 800dc74: 1e5a subs r2, r3, #1 800dc76: 68bb ldr r3, [r7, #8] 800dc78: 401a ands r2, r3 800dc7a: 697b ldr r3, [r7, #20] 800dc7c: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) 800dc7e: 2101 movs r1, #1 800dc80: 697b ldr r3, [r7, #20] 800dc82: fa01 f303 lsl.w r3, r1, r3 800dc86: 1e59 subs r1, r3, #1 800dc88: 687b ldr r3, [r7, #4] 800dc8a: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | 800dc8c: 4313 orrs r3, r2 ); } 800dc8e: 4618 mov r0, r3 800dc90: 3724 adds r7, #36 ; 0x24 800dc92: 46bd mov sp, r7 800dc94: f85d 7b04 ldr.w r7, [sp], #4 800dc98: 4770 bx lr ... 0800dc9c : \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) { 800dc9c: b580 push {r7, lr} 800dc9e: b082 sub sp, #8 800dca0: af00 add r7, sp, #0 800dca2: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) 800dca4: 687b ldr r3, [r7, #4] 800dca6: 3b01 subs r3, #1 800dca8: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 800dcac: d301 bcc.n 800dcb2 { return (1UL); /* Reload value impossible */ 800dcae: 2301 movs r3, #1 800dcb0: e00f b.n 800dcd2 } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ 800dcb2: 4a0a ldr r2, [pc, #40] ; (800dcdc ) 800dcb4: 687b ldr r3, [r7, #4] 800dcb6: 3b01 subs r3, #1 800dcb8: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ 800dcba: 210f movs r1, #15 800dcbc: f04f 30ff mov.w r0, #4294967295 800dcc0: f7ff ff90 bl 800dbe4 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ 800dcc4: 4b05 ldr r3, [pc, #20] ; (800dcdc ) 800dcc6: 2200 movs r2, #0 800dcc8: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | 800dcca: 4b04 ldr r3, [pc, #16] ; (800dcdc ) 800dccc: 2207 movs r2, #7 800dcce: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ 800dcd0: 2300 movs r3, #0 } 800dcd2: 4618 mov r0, r3 800dcd4: 3708 adds r7, #8 800dcd6: 46bd mov sp, r7 800dcd8: bd80 pop {r7, pc} 800dcda: bf00 nop 800dcdc: e000e010 .word 0xe000e010 0800dce0 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { 800dce0: b580 push {r7, lr} 800dce2: b082 sub sp, #8 800dce4: af00 add r7, sp, #0 800dce6: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ NVIC_SetPriorityGrouping(PriorityGroup); 800dce8: 6878 ldr r0, [r7, #4] 800dcea: f7ff ff09 bl 800db00 <__NVIC_SetPriorityGrouping> } 800dcee: bf00 nop 800dcf0: 3708 adds r7, #8 800dcf2: 46bd mov sp, r7 800dcf4: bd80 pop {r7, pc} 0800dcf6 : * This parameter can be a value between 0 and 15 * A lower priority value indicates a higher priority. * @retval None */ void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) { 800dcf6: b580 push {r7, lr} 800dcf8: b086 sub sp, #24 800dcfa: af00 add r7, sp, #0 800dcfc: 4603 mov r3, r0 800dcfe: 60b9 str r1, [r7, #8] 800dd00: 607a str r2, [r7, #4] 800dd02: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00; 800dd04: 2300 movs r3, #0 800dd06: 617b str r3, [r7, #20] /* Check the parameters */ assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); prioritygroup = NVIC_GetPriorityGrouping(); 800dd08: f7ff ff1e bl 800db48 <__NVIC_GetPriorityGrouping> 800dd0c: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); 800dd0e: 687a ldr r2, [r7, #4] 800dd10: 68b9 ldr r1, [r7, #8] 800dd12: 6978 ldr r0, [r7, #20] 800dd14: f7ff ff90 bl 800dc38 800dd18: 4602 mov r2, r0 800dd1a: f997 300f ldrsb.w r3, [r7, #15] 800dd1e: 4611 mov r1, r2 800dd20: 4618 mov r0, r3 800dd22: f7ff ff5f bl 800dbe4 <__NVIC_SetPriority> } 800dd26: bf00 nop 800dd28: 3718 adds r7, #24 800dd2a: 46bd mov sp, r7 800dd2c: bd80 pop {r7, pc} 0800dd2e : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h)) * @retval None */ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) { 800dd2e: b580 push {r7, lr} 800dd30: b082 sub sp, #8 800dd32: af00 add r7, sp, #0 800dd34: 4603 mov r3, r0 800dd36: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Enable interrupt */ NVIC_EnableIRQ(IRQn); 800dd38: f997 3007 ldrsb.w r3, [r7, #7] 800dd3c: 4618 mov r0, r3 800dd3e: f7ff ff11 bl 800db64 <__NVIC_EnableIRQ> } 800dd42: bf00 nop 800dd44: 3708 adds r7, #8 800dd46: 46bd mov sp, r7 800dd48: bd80 pop {r7, pc} 0800dd4a : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h)) * @retval None */ void HAL_NVIC_DisableIRQ(IRQn_Type IRQn) { 800dd4a: b580 push {r7, lr} 800dd4c: b082 sub sp, #8 800dd4e: af00 add r7, sp, #0 800dd50: 4603 mov r3, r0 800dd52: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Disable interrupt */ NVIC_DisableIRQ(IRQn); 800dd54: f997 3007 ldrsb.w r3, [r7, #7] 800dd58: 4618 mov r0, r3 800dd5a: f7ff ff21 bl 800dba0 <__NVIC_DisableIRQ> } 800dd5e: bf00 nop 800dd60: 3708 adds r7, #8 800dd62: 46bd mov sp, r7 800dd64: bd80 pop {r7, pc} 0800dd66 : * @param TicksNumb Specifies the ticks Number of ticks between two interrupts. * @retval status: - 0 Function succeeded. * - 1 Function failed. */ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { 800dd66: b580 push {r7, lr} 800dd68: b082 sub sp, #8 800dd6a: af00 add r7, sp, #0 800dd6c: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); 800dd6e: 6878 ldr r0, [r7, #4] 800dd70: f7ff ff94 bl 800dc9c 800dd74: 4603 mov r3, r0 } 800dd76: 4618 mov r0, r3 800dd78: 3708 adds r7, #8 800dd7a: 46bd mov sp, r7 800dd7c: bd80 pop {r7, pc} 0800dd7e : * and the Stream will be effectively disabled only after the transfer of * this single data is finished. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) { 800dd7e: b580 push {r7, lr} 800dd80: b084 sub sp, #16 800dd82: af00 add r7, sp, #0 800dd84: 6078 str r0, [r7, #4] /* calculate DMA base and stream number */ DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 800dd86: 687b ldr r3, [r7, #4] 800dd88: 6d9b ldr r3, [r3, #88] ; 0x58 800dd8a: 60fb str r3, [r7, #12] uint32_t tickstart = HAL_GetTick(); 800dd8c: f7ff fe8a bl 800daa4 800dd90: 60b8 str r0, [r7, #8] if(hdma->State != HAL_DMA_STATE_BUSY) 800dd92: 687b ldr r3, [r7, #4] 800dd94: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 800dd98: b2db uxtb r3, r3 800dd9a: 2b02 cmp r3, #2 800dd9c: d008 beq.n 800ddb0 { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 800dd9e: 687b ldr r3, [r7, #4] 800dda0: 2280 movs r2, #128 ; 0x80 800dda2: 655a str r2, [r3, #84] ; 0x54 /* Process Unlocked */ __HAL_UNLOCK(hdma); 800dda4: 687b ldr r3, [r7, #4] 800dda6: 2200 movs r2, #0 800dda8: f883 2034 strb.w r2, [r3, #52] ; 0x34 return HAL_ERROR; 800ddac: 2301 movs r3, #1 800ddae: e052 b.n 800de56 } else { /* Disable all the transfer interrupts */ hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 800ddb0: 687b ldr r3, [r7, #4] 800ddb2: 681b ldr r3, [r3, #0] 800ddb4: 687a ldr r2, [r7, #4] 800ddb6: 6812 ldr r2, [r2, #0] 800ddb8: 6812 ldr r2, [r2, #0] 800ddba: f022 0216 bic.w r2, r2, #22 800ddbe: 601a str r2, [r3, #0] hdma->Instance->FCR &= ~(DMA_IT_FE); 800ddc0: 687b ldr r3, [r7, #4] 800ddc2: 681b ldr r3, [r3, #0] 800ddc4: 687a ldr r2, [r7, #4] 800ddc6: 6812 ldr r2, [r2, #0] 800ddc8: 6952 ldr r2, [r2, #20] 800ddca: f022 0280 bic.w r2, r2, #128 ; 0x80 800ddce: 615a str r2, [r3, #20] if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 800ddd0: 687b ldr r3, [r7, #4] 800ddd2: 6c1b ldr r3, [r3, #64] ; 0x40 800ddd4: 2b00 cmp r3, #0 800ddd6: d103 bne.n 800dde0 800ddd8: 687b ldr r3, [r7, #4] 800ddda: 6c9b ldr r3, [r3, #72] ; 0x48 800dddc: 2b00 cmp r3, #0 800ddde: d007 beq.n 800ddf0 { hdma->Instance->CR &= ~(DMA_IT_HT); 800dde0: 687b ldr r3, [r7, #4] 800dde2: 681b ldr r3, [r3, #0] 800dde4: 687a ldr r2, [r7, #4] 800dde6: 6812 ldr r2, [r2, #0] 800dde8: 6812 ldr r2, [r2, #0] 800ddea: f022 0208 bic.w r2, r2, #8 800ddee: 601a str r2, [r3, #0] } /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 800ddf0: 687b ldr r3, [r7, #4] 800ddf2: 681b ldr r3, [r3, #0] 800ddf4: 687a ldr r2, [r7, #4] 800ddf6: 6812 ldr r2, [r2, #0] 800ddf8: 6812 ldr r2, [r2, #0] 800ddfa: f022 0201 bic.w r2, r2, #1 800ddfe: 601a str r2, [r3, #0] /* Check if the DMA Stream is effectively disabled */ while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 800de00: e013 b.n 800de2a { /* Check for the Timeout */ if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT) 800de02: f7ff fe4f bl 800daa4 800de06: 4602 mov r2, r0 800de08: 68bb ldr r3, [r7, #8] 800de0a: 1ad3 subs r3, r2, r3 800de0c: 2b05 cmp r3, #5 800de0e: d90c bls.n 800de2a { /* Update error code */ hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; 800de10: 687b ldr r3, [r7, #4] 800de12: 2220 movs r2, #32 800de14: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA state */ hdma->State = HAL_DMA_STATE_TIMEOUT; 800de16: 687b ldr r3, [r7, #4] 800de18: 2203 movs r2, #3 800de1a: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 800de1e: 687b ldr r3, [r7, #4] 800de20: 2200 movs r2, #0 800de22: f883 2034 strb.w r2, [r3, #52] ; 0x34 return HAL_TIMEOUT; 800de26: 2303 movs r3, #3 800de28: e015 b.n 800de56 while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 800de2a: 687b ldr r3, [r7, #4] 800de2c: 681b ldr r3, [r3, #0] 800de2e: 681b ldr r3, [r3, #0] 800de30: f003 0301 and.w r3, r3, #1 800de34: 2b00 cmp r3, #0 800de36: d1e4 bne.n 800de02 } } /* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU << hdma->StreamIndex; 800de38: 687b ldr r3, [r7, #4] 800de3a: 6ddb ldr r3, [r3, #92] ; 0x5c 800de3c: 223f movs r2, #63 ; 0x3f 800de3e: 409a lsls r2, r3 800de40: 68fb ldr r3, [r7, #12] 800de42: 609a str r2, [r3, #8] /* Change the DMA state*/ hdma->State = HAL_DMA_STATE_READY; 800de44: 687b ldr r3, [r7, #4] 800de46: 2201 movs r2, #1 800de48: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 800de4c: 687b ldr r3, [r7, #4] 800de4e: 2200 movs r2, #0 800de50: f883 2034 strb.w r2, [r3, #52] ; 0x34 } return HAL_OK; 800de54: 2300 movs r3, #0 } 800de56: 4618 mov r0, r3 800de58: 3710 adds r7, #16 800de5a: 46bd mov sp, r7 800de5c: bd80 pop {r7, pc} 0800de5e : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) { 800de5e: b480 push {r7} 800de60: b083 sub sp, #12 800de62: af00 add r7, sp, #0 800de64: 6078 str r0, [r7, #4] if(hdma->State != HAL_DMA_STATE_BUSY) 800de66: 687b ldr r3, [r7, #4] 800de68: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 800de6c: b2db uxtb r3, r3 800de6e: 2b02 cmp r3, #2 800de70: d004 beq.n 800de7c { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 800de72: 687b ldr r3, [r7, #4] 800de74: 2280 movs r2, #128 ; 0x80 800de76: 655a str r2, [r3, #84] ; 0x54 return HAL_ERROR; 800de78: 2301 movs r3, #1 800de7a: e00c b.n 800de96 } else { /* Set Abort State */ hdma->State = HAL_DMA_STATE_ABORT; 800de7c: 687b ldr r3, [r7, #4] 800de7e: 2205 movs r2, #5 800de80: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 800de84: 687b ldr r3, [r7, #4] 800de86: 681b ldr r3, [r3, #0] 800de88: 687a ldr r2, [r7, #4] 800de8a: 6812 ldr r2, [r2, #0] 800de8c: 6812 ldr r2, [r2, #0] 800de8e: f022 0201 bic.w r2, r2, #1 800de92: 601a str r2, [r3, #0] } return HAL_OK; 800de94: 2300 movs r3, #0 } 800de96: 4618 mov r0, r3 800de98: 370c adds r7, #12 800de9a: 46bd mov sp, r7 800de9c: f85d 7b04 ldr.w r7, [sp], #4 800dea0: 4770 bx lr ... 0800dea4 : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval None */ void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) { 800dea4: b580 push {r7, lr} 800dea6: b086 sub sp, #24 800dea8: af00 add r7, sp, #0 800deaa: 6078 str r0, [r7, #4] uint32_t tmpisr; __IO uint32_t count = 0; 800deac: 2300 movs r3, #0 800deae: 60bb str r3, [r7, #8] uint32_t timeout = SystemCoreClock / 9600; 800deb0: 4b92 ldr r3, [pc, #584] ; (800e0fc ) 800deb2: 681b ldr r3, [r3, #0] 800deb4: 4a92 ldr r2, [pc, #584] ; (800e100 ) 800deb6: fba2 2303 umull r2, r3, r2, r3 800deba: 0a9b lsrs r3, r3, #10 800debc: 617b str r3, [r7, #20] /* calculate DMA base and stream number */ DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 800debe: 687b ldr r3, [r7, #4] 800dec0: 6d9b ldr r3, [r3, #88] ; 0x58 800dec2: 613b str r3, [r7, #16] tmpisr = regs->ISR; 800dec4: 693b ldr r3, [r7, #16] 800dec6: 681b ldr r3, [r3, #0] 800dec8: 60fb str r3, [r7, #12] /* Transfer Error Interrupt management ***************************************/ if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET) 800deca: 687b ldr r3, [r7, #4] 800decc: 6ddb ldr r3, [r3, #92] ; 0x5c 800dece: 2208 movs r2, #8 800ded0: 409a lsls r2, r3 800ded2: 68fb ldr r3, [r7, #12] 800ded4: 4013 ands r3, r2 800ded6: 2b00 cmp r3, #0 800ded8: d01a beq.n 800df10 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET) 800deda: 687b ldr r3, [r7, #4] 800dedc: 681b ldr r3, [r3, #0] 800dede: 681b ldr r3, [r3, #0] 800dee0: f003 0304 and.w r3, r3, #4 800dee4: 2b00 cmp r3, #0 800dee6: d013 beq.n 800df10 { /* Disable the transfer error interrupt */ hdma->Instance->CR &= ~(DMA_IT_TE); 800dee8: 687b ldr r3, [r7, #4] 800deea: 681b ldr r3, [r3, #0] 800deec: 687a ldr r2, [r7, #4] 800deee: 6812 ldr r2, [r2, #0] 800def0: 6812 ldr r2, [r2, #0] 800def2: f022 0204 bic.w r2, r2, #4 800def6: 601a str r2, [r3, #0] /* Clear the transfer error flag */ regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex; 800def8: 687b ldr r3, [r7, #4] 800defa: 6ddb ldr r3, [r3, #92] ; 0x5c 800defc: 2208 movs r2, #8 800defe: 409a lsls r2, r3 800df00: 693b ldr r3, [r7, #16] 800df02: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_TE; 800df04: 687b ldr r3, [r7, #4] 800df06: 6d5b ldr r3, [r3, #84] ; 0x54 800df08: f043 0201 orr.w r2, r3, #1 800df0c: 687b ldr r3, [r7, #4] 800df0e: 655a str r2, [r3, #84] ; 0x54 } } /* FIFO Error Interrupt management ******************************************/ if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET) 800df10: 687b ldr r3, [r7, #4] 800df12: 6ddb ldr r3, [r3, #92] ; 0x5c 800df14: 2201 movs r2, #1 800df16: 409a lsls r2, r3 800df18: 68fb ldr r3, [r7, #12] 800df1a: 4013 ands r3, r2 800df1c: 2b00 cmp r3, #0 800df1e: d012 beq.n 800df46 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET) 800df20: 687b ldr r3, [r7, #4] 800df22: 681b ldr r3, [r3, #0] 800df24: 695b ldr r3, [r3, #20] 800df26: f003 0380 and.w r3, r3, #128 ; 0x80 800df2a: 2b00 cmp r3, #0 800df2c: d00b beq.n 800df46 { /* Clear the FIFO error flag */ regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex; 800df2e: 687b ldr r3, [r7, #4] 800df30: 6ddb ldr r3, [r3, #92] ; 0x5c 800df32: 2201 movs r2, #1 800df34: 409a lsls r2, r3 800df36: 693b ldr r3, [r7, #16] 800df38: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_FE; 800df3a: 687b ldr r3, [r7, #4] 800df3c: 6d5b ldr r3, [r3, #84] ; 0x54 800df3e: f043 0202 orr.w r2, r3, #2 800df42: 687b ldr r3, [r7, #4] 800df44: 655a str r2, [r3, #84] ; 0x54 } } /* Direct Mode Error Interrupt management ***********************************/ if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET) 800df46: 687b ldr r3, [r7, #4] 800df48: 6ddb ldr r3, [r3, #92] ; 0x5c 800df4a: 2204 movs r2, #4 800df4c: 409a lsls r2, r3 800df4e: 68fb ldr r3, [r7, #12] 800df50: 4013 ands r3, r2 800df52: 2b00 cmp r3, #0 800df54: d012 beq.n 800df7c { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET) 800df56: 687b ldr r3, [r7, #4] 800df58: 681b ldr r3, [r3, #0] 800df5a: 681b ldr r3, [r3, #0] 800df5c: f003 0302 and.w r3, r3, #2 800df60: 2b00 cmp r3, #0 800df62: d00b beq.n 800df7c { /* Clear the direct mode error flag */ regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex; 800df64: 687b ldr r3, [r7, #4] 800df66: 6ddb ldr r3, [r3, #92] ; 0x5c 800df68: 2204 movs r2, #4 800df6a: 409a lsls r2, r3 800df6c: 693b ldr r3, [r7, #16] 800df6e: 609a str r2, [r3, #8] /* Update error code */ hdma->ErrorCode |= HAL_DMA_ERROR_DME; 800df70: 687b ldr r3, [r7, #4] 800df72: 6d5b ldr r3, [r3, #84] ; 0x54 800df74: f043 0204 orr.w r2, r3, #4 800df78: 687b ldr r3, [r7, #4] 800df7a: 655a str r2, [r3, #84] ; 0x54 } } /* Half Transfer Complete Interrupt management ******************************/ if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET) 800df7c: 687b ldr r3, [r7, #4] 800df7e: 6ddb ldr r3, [r3, #92] ; 0x5c 800df80: 2210 movs r2, #16 800df82: 409a lsls r2, r3 800df84: 68fb ldr r3, [r7, #12] 800df86: 4013 ands r3, r2 800df88: 2b00 cmp r3, #0 800df8a: d043 beq.n 800e014 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET) 800df8c: 687b ldr r3, [r7, #4] 800df8e: 681b ldr r3, [r3, #0] 800df90: 681b ldr r3, [r3, #0] 800df92: f003 0308 and.w r3, r3, #8 800df96: 2b00 cmp r3, #0 800df98: d03c beq.n 800e014 { /* Clear the half transfer complete flag */ regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex; 800df9a: 687b ldr r3, [r7, #4] 800df9c: 6ddb ldr r3, [r3, #92] ; 0x5c 800df9e: 2210 movs r2, #16 800dfa0: 409a lsls r2, r3 800dfa2: 693b ldr r3, [r7, #16] 800dfa4: 609a str r2, [r3, #8] /* Multi_Buffering mode enabled */ if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 800dfa6: 687b ldr r3, [r7, #4] 800dfa8: 681b ldr r3, [r3, #0] 800dfaa: 681b ldr r3, [r3, #0] 800dfac: f403 2380 and.w r3, r3, #262144 ; 0x40000 800dfb0: 2b00 cmp r3, #0 800dfb2: d018 beq.n 800dfe6 { /* Current memory buffer used is Memory 0 */ if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 800dfb4: 687b ldr r3, [r7, #4] 800dfb6: 681b ldr r3, [r3, #0] 800dfb8: 681b ldr r3, [r3, #0] 800dfba: f403 2300 and.w r3, r3, #524288 ; 0x80000 800dfbe: 2b00 cmp r3, #0 800dfc0: d108 bne.n 800dfd4 { if(hdma->XferHalfCpltCallback != NULL) 800dfc2: 687b ldr r3, [r7, #4] 800dfc4: 6c1b ldr r3, [r3, #64] ; 0x40 800dfc6: 2b00 cmp r3, #0 800dfc8: d024 beq.n 800e014 { /* Half transfer callback */ hdma->XferHalfCpltCallback(hdma); 800dfca: 687b ldr r3, [r7, #4] 800dfcc: 6c1b ldr r3, [r3, #64] ; 0x40 800dfce: 6878 ldr r0, [r7, #4] 800dfd0: 4798 blx r3 800dfd2: e01f b.n 800e014 } } /* Current memory buffer used is Memory 1 */ else { if(hdma->XferM1HalfCpltCallback != NULL) 800dfd4: 687b ldr r3, [r7, #4] 800dfd6: 6c9b ldr r3, [r3, #72] ; 0x48 800dfd8: 2b00 cmp r3, #0 800dfda: d01b beq.n 800e014 { /* Half transfer callback */ hdma->XferM1HalfCpltCallback(hdma); 800dfdc: 687b ldr r3, [r7, #4] 800dfde: 6c9b ldr r3, [r3, #72] ; 0x48 800dfe0: 6878 ldr r0, [r7, #4] 800dfe2: 4798 blx r3 800dfe4: e016 b.n 800e014 } } else { /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 800dfe6: 687b ldr r3, [r7, #4] 800dfe8: 681b ldr r3, [r3, #0] 800dfea: 681b ldr r3, [r3, #0] 800dfec: f403 7380 and.w r3, r3, #256 ; 0x100 800dff0: 2b00 cmp r3, #0 800dff2: d107 bne.n 800e004 { /* Disable the half transfer interrupt */ hdma->Instance->CR &= ~(DMA_IT_HT); 800dff4: 687b ldr r3, [r7, #4] 800dff6: 681b ldr r3, [r3, #0] 800dff8: 687a ldr r2, [r7, #4] 800dffa: 6812 ldr r2, [r2, #0] 800dffc: 6812 ldr r2, [r2, #0] 800dffe: f022 0208 bic.w r2, r2, #8 800e002: 601a str r2, [r3, #0] } if(hdma->XferHalfCpltCallback != NULL) 800e004: 687b ldr r3, [r7, #4] 800e006: 6c1b ldr r3, [r3, #64] ; 0x40 800e008: 2b00 cmp r3, #0 800e00a: d003 beq.n 800e014 { /* Half transfer callback */ hdma->XferHalfCpltCallback(hdma); 800e00c: 687b ldr r3, [r7, #4] 800e00e: 6c1b ldr r3, [r3, #64] ; 0x40 800e010: 6878 ldr r0, [r7, #4] 800e012: 4798 blx r3 } } } } /* Transfer Complete Interrupt management ***********************************/ if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET) 800e014: 687b ldr r3, [r7, #4] 800e016: 6ddb ldr r3, [r3, #92] ; 0x5c 800e018: 2220 movs r2, #32 800e01a: 409a lsls r2, r3 800e01c: 68fb ldr r3, [r7, #12] 800e01e: 4013 ands r3, r2 800e020: 2b00 cmp r3, #0 800e022: f000 808e beq.w 800e142 { if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET) 800e026: 687b ldr r3, [r7, #4] 800e028: 681b ldr r3, [r3, #0] 800e02a: 681b ldr r3, [r3, #0] 800e02c: f003 0310 and.w r3, r3, #16 800e030: 2b00 cmp r3, #0 800e032: f000 8086 beq.w 800e142 { /* Clear the transfer complete flag */ regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex; 800e036: 687b ldr r3, [r7, #4] 800e038: 6ddb ldr r3, [r3, #92] ; 0x5c 800e03a: 2220 movs r2, #32 800e03c: 409a lsls r2, r3 800e03e: 693b ldr r3, [r7, #16] 800e040: 609a str r2, [r3, #8] if(HAL_DMA_STATE_ABORT == hdma->State) 800e042: 687b ldr r3, [r7, #4] 800e044: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 800e048: b2db uxtb r3, r3 800e04a: 2b05 cmp r3, #5 800e04c: d136 bne.n 800e0bc { /* Disable all the transfer interrupts */ hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 800e04e: 687b ldr r3, [r7, #4] 800e050: 681b ldr r3, [r3, #0] 800e052: 687a ldr r2, [r7, #4] 800e054: 6812 ldr r2, [r2, #0] 800e056: 6812 ldr r2, [r2, #0] 800e058: f022 0216 bic.w r2, r2, #22 800e05c: 601a str r2, [r3, #0] hdma->Instance->FCR &= ~(DMA_IT_FE); 800e05e: 687b ldr r3, [r7, #4] 800e060: 681b ldr r3, [r3, #0] 800e062: 687a ldr r2, [r7, #4] 800e064: 6812 ldr r2, [r2, #0] 800e066: 6952 ldr r2, [r2, #20] 800e068: f022 0280 bic.w r2, r2, #128 ; 0x80 800e06c: 615a str r2, [r3, #20] if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 800e06e: 687b ldr r3, [r7, #4] 800e070: 6c1b ldr r3, [r3, #64] ; 0x40 800e072: 2b00 cmp r3, #0 800e074: d103 bne.n 800e07e 800e076: 687b ldr r3, [r7, #4] 800e078: 6c9b ldr r3, [r3, #72] ; 0x48 800e07a: 2b00 cmp r3, #0 800e07c: d007 beq.n 800e08e { hdma->Instance->CR &= ~(DMA_IT_HT); 800e07e: 687b ldr r3, [r7, #4] 800e080: 681b ldr r3, [r3, #0] 800e082: 687a ldr r2, [r7, #4] 800e084: 6812 ldr r2, [r2, #0] 800e086: 6812 ldr r2, [r2, #0] 800e088: f022 0208 bic.w r2, r2, #8 800e08c: 601a str r2, [r3, #0] } /* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU << hdma->StreamIndex; 800e08e: 687b ldr r3, [r7, #4] 800e090: 6ddb ldr r3, [r3, #92] ; 0x5c 800e092: 223f movs r2, #63 ; 0x3f 800e094: 409a lsls r2, r3 800e096: 693b ldr r3, [r7, #16] 800e098: 609a str r2, [r3, #8] /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 800e09a: 687b ldr r3, [r7, #4] 800e09c: 2201 movs r2, #1 800e09e: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 800e0a2: 687b ldr r3, [r7, #4] 800e0a4: 2200 movs r2, #0 800e0a6: f883 2034 strb.w r2, [r3, #52] ; 0x34 if(hdma->XferAbortCallback != NULL) 800e0aa: 687b ldr r3, [r7, #4] 800e0ac: 6d1b ldr r3, [r3, #80] ; 0x50 800e0ae: 2b00 cmp r3, #0 800e0b0: d07d beq.n 800e1ae { hdma->XferAbortCallback(hdma); 800e0b2: 687b ldr r3, [r7, #4] 800e0b4: 6d1b ldr r3, [r3, #80] ; 0x50 800e0b6: 6878 ldr r0, [r7, #4] 800e0b8: 4798 blx r3 } return; 800e0ba: e078 b.n 800e1ae } if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 800e0bc: 687b ldr r3, [r7, #4] 800e0be: 681b ldr r3, [r3, #0] 800e0c0: 681b ldr r3, [r3, #0] 800e0c2: f403 2380 and.w r3, r3, #262144 ; 0x40000 800e0c6: 2b00 cmp r3, #0 800e0c8: d01c beq.n 800e104 { /* Current memory buffer used is Memory 0 */ if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 800e0ca: 687b ldr r3, [r7, #4] 800e0cc: 681b ldr r3, [r3, #0] 800e0ce: 681b ldr r3, [r3, #0] 800e0d0: f403 2300 and.w r3, r3, #524288 ; 0x80000 800e0d4: 2b00 cmp r3, #0 800e0d6: d108 bne.n 800e0ea { if(hdma->XferM1CpltCallback != NULL) 800e0d8: 687b ldr r3, [r7, #4] 800e0da: 6c5b ldr r3, [r3, #68] ; 0x44 800e0dc: 2b00 cmp r3, #0 800e0de: d030 beq.n 800e142 { /* Transfer complete Callback for memory1 */ hdma->XferM1CpltCallback(hdma); 800e0e0: 687b ldr r3, [r7, #4] 800e0e2: 6c5b ldr r3, [r3, #68] ; 0x44 800e0e4: 6878 ldr r0, [r7, #4] 800e0e6: 4798 blx r3 800e0e8: e02b b.n 800e142 } } /* Current memory buffer used is Memory 1 */ else { if(hdma->XferCpltCallback != NULL) 800e0ea: 687b ldr r3, [r7, #4] 800e0ec: 6bdb ldr r3, [r3, #60] ; 0x3c 800e0ee: 2b00 cmp r3, #0 800e0f0: d027 beq.n 800e142 { /* Transfer complete Callback for memory0 */ hdma->XferCpltCallback(hdma); 800e0f2: 687b ldr r3, [r7, #4] 800e0f4: 6bdb ldr r3, [r3, #60] ; 0x3c 800e0f6: 6878 ldr r0, [r7, #4] 800e0f8: 4798 blx r3 800e0fa: e022 b.n 800e142 800e0fc: 20020214 .word 0x20020214 800e100: 1b4e81b5 .word 0x1b4e81b5 } } /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */ else { if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 800e104: 687b ldr r3, [r7, #4] 800e106: 681b ldr r3, [r3, #0] 800e108: 681b ldr r3, [r3, #0] 800e10a: f403 7380 and.w r3, r3, #256 ; 0x100 800e10e: 2b00 cmp r3, #0 800e110: d10f bne.n 800e132 { /* Disable the transfer complete interrupt */ hdma->Instance->CR &= ~(DMA_IT_TC); 800e112: 687b ldr r3, [r7, #4] 800e114: 681b ldr r3, [r3, #0] 800e116: 687a ldr r2, [r7, #4] 800e118: 6812 ldr r2, [r2, #0] 800e11a: 6812 ldr r2, [r2, #0] 800e11c: f022 0210 bic.w r2, r2, #16 800e120: 601a str r2, [r3, #0] /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 800e122: 687b ldr r3, [r7, #4] 800e124: 2201 movs r2, #1 800e126: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 800e12a: 687b ldr r3, [r7, #4] 800e12c: 2200 movs r2, #0 800e12e: f883 2034 strb.w r2, [r3, #52] ; 0x34 } if(hdma->XferCpltCallback != NULL) 800e132: 687b ldr r3, [r7, #4] 800e134: 6bdb ldr r3, [r3, #60] ; 0x3c 800e136: 2b00 cmp r3, #0 800e138: d003 beq.n 800e142 { /* Transfer complete callback */ hdma->XferCpltCallback(hdma); 800e13a: 687b ldr r3, [r7, #4] 800e13c: 6bdb ldr r3, [r3, #60] ; 0x3c 800e13e: 6878 ldr r0, [r7, #4] 800e140: 4798 blx r3 } } } /* manage error case */ if(hdma->ErrorCode != HAL_DMA_ERROR_NONE) 800e142: 687b ldr r3, [r7, #4] 800e144: 6d5b ldr r3, [r3, #84] ; 0x54 800e146: 2b00 cmp r3, #0 800e148: d032 beq.n 800e1b0 { if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET) 800e14a: 687b ldr r3, [r7, #4] 800e14c: 6d5b ldr r3, [r3, #84] ; 0x54 800e14e: f003 0301 and.w r3, r3, #1 800e152: 2b00 cmp r3, #0 800e154: d022 beq.n 800e19c { hdma->State = HAL_DMA_STATE_ABORT; 800e156: 687b ldr r3, [r7, #4] 800e158: 2205 movs r2, #5 800e15a: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); 800e15e: 687b ldr r3, [r7, #4] 800e160: 681b ldr r3, [r3, #0] 800e162: 687a ldr r2, [r7, #4] 800e164: 6812 ldr r2, [r2, #0] 800e166: 6812 ldr r2, [r2, #0] 800e168: f022 0201 bic.w r2, r2, #1 800e16c: 601a str r2, [r3, #0] do { if (++count > timeout) 800e16e: 68bb ldr r3, [r7, #8] 800e170: 3301 adds r3, #1 800e172: 60bb str r3, [r7, #8] 800e174: 697a ldr r2, [r7, #20] 800e176: 4293 cmp r3, r2 800e178: d807 bhi.n 800e18a { break; } } while((hdma->Instance->CR & DMA_SxCR_EN) != RESET); 800e17a: 687b ldr r3, [r7, #4] 800e17c: 681b ldr r3, [r3, #0] 800e17e: 681b ldr r3, [r3, #0] 800e180: f003 0301 and.w r3, r3, #1 800e184: 2b00 cmp r3, #0 800e186: d1f2 bne.n 800e16e 800e188: e000 b.n 800e18c break; 800e18a: bf00 nop /* Change the DMA state */ hdma->State = HAL_DMA_STATE_READY; 800e18c: 687b ldr r3, [r7, #4] 800e18e: 2201 movs r2, #1 800e190: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Process Unlocked */ __HAL_UNLOCK(hdma); 800e194: 687b ldr r3, [r7, #4] 800e196: 2200 movs r2, #0 800e198: f883 2034 strb.w r2, [r3, #52] ; 0x34 } if(hdma->XferErrorCallback != NULL) 800e19c: 687b ldr r3, [r7, #4] 800e19e: 6cdb ldr r3, [r3, #76] ; 0x4c 800e1a0: 2b00 cmp r3, #0 800e1a2: d005 beq.n 800e1b0 { /* Transfer error callback */ hdma->XferErrorCallback(hdma); 800e1a4: 687b ldr r3, [r7, #4] 800e1a6: 6cdb ldr r3, [r3, #76] ; 0x4c 800e1a8: 6878 ldr r0, [r7, #4] 800e1aa: 4798 blx r3 800e1ac: e000 b.n 800e1b0 return; 800e1ae: bf00 nop } } } 800e1b0: 3718 adds r7, #24 800e1b2: 46bd mov sp, r7 800e1b4: bd80 pop {r7, pc} 800e1b6: bf00 nop 0800e1b8 : * @param hdma2d pointer to a DMA2D_HandleTypeDef structure that contains * the configuration information for the DMA2D. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d) { 800e1b8: b580 push {r7, lr} 800e1ba: b082 sub sp, #8 800e1bc: af00 add r7, sp, #0 800e1be: 6078 str r0, [r7, #4] /* Check the DMA2D peripheral state */ if (hdma2d == NULL) 800e1c0: 687b ldr r3, [r7, #4] 800e1c2: 2b00 cmp r3, #0 800e1c4: d101 bne.n 800e1ca { return HAL_ERROR; 800e1c6: 2301 movs r3, #1 800e1c8: e049 b.n 800e25e /* Init the low level hardware */ hdma2d->MspInitCallback(hdma2d); } #else if (hdma2d->State == HAL_DMA2D_STATE_RESET) 800e1ca: 687b ldr r3, [r7, #4] 800e1cc: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 800e1d0: b2db uxtb r3, r3 800e1d2: 2b00 cmp r3, #0 800e1d4: d106 bne.n 800e1e4 { /* Allocate lock resource and initialize it */ hdma2d->Lock = HAL_UNLOCKED; 800e1d6: 687b ldr r3, [r7, #4] 800e1d8: 2200 movs r2, #0 800e1da: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Init the low level hardware */ HAL_DMA2D_MspInit(hdma2d); 800e1de: 6878 ldr r0, [r7, #4] 800e1e0: f7f2 fa1e bl 8000620 } #endif /* (USE_HAL_DMA2D_REGISTER_CALLBACKS) */ /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 800e1e4: 687b ldr r3, [r7, #4] 800e1e6: 2202 movs r2, #2 800e1e8: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* DMA2D CR register configuration -------------------------------------------*/ MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_MODE, hdma2d->Init.Mode); 800e1ec: 687b ldr r3, [r7, #4] 800e1ee: 681b ldr r3, [r3, #0] 800e1f0: 687a ldr r2, [r7, #4] 800e1f2: 6812 ldr r2, [r2, #0] 800e1f4: 6812 ldr r2, [r2, #0] 800e1f6: f422 3140 bic.w r1, r2, #196608 ; 0x30000 800e1fa: 687a ldr r2, [r7, #4] 800e1fc: 6852 ldr r2, [r2, #4] 800e1fe: 430a orrs r2, r1 800e200: 601a str r2, [r3, #0] /* DMA2D OPFCCR register configuration ---------------------------------------*/ MODIFY_REG(hdma2d->Instance->OPFCCR, DMA2D_OPFCCR_CM, hdma2d->Init.ColorMode); 800e202: 687b ldr r3, [r7, #4] 800e204: 681b ldr r3, [r3, #0] 800e206: 687a ldr r2, [r7, #4] 800e208: 6812 ldr r2, [r2, #0] 800e20a: 6b52 ldr r2, [r2, #52] ; 0x34 800e20c: f022 0107 bic.w r1, r2, #7 800e210: 687a ldr r2, [r7, #4] 800e212: 6892 ldr r2, [r2, #8] 800e214: 430a orrs r2, r1 800e216: 635a str r2, [r3, #52] ; 0x34 /* DMA2D OOR register configuration ------------------------------------------*/ MODIFY_REG(hdma2d->Instance->OOR, DMA2D_OOR_LO, hdma2d->Init.OutputOffset); 800e218: 687b ldr r3, [r7, #4] 800e21a: 681a ldr r2, [r3, #0] 800e21c: 687b ldr r3, [r7, #4] 800e21e: 681b ldr r3, [r3, #0] 800e220: 6c19 ldr r1, [r3, #64] ; 0x40 800e222: 4b11 ldr r3, [pc, #68] ; (800e268 ) 800e224: 400b ands r3, r1 800e226: 6879 ldr r1, [r7, #4] 800e228: 68c9 ldr r1, [r1, #12] 800e22a: 430b orrs r3, r1 800e22c: 6413 str r3, [r2, #64] ; 0x40 #if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT) /* DMA2D OPFCCR AI and RBS fields setting (Output Alpha Inversion)*/ MODIFY_REG(hdma2d->Instance->OPFCCR, (DMA2D_OPFCCR_AI | DMA2D_OPFCCR_RBS), 800e22e: 687b ldr r3, [r7, #4] 800e230: 681b ldr r3, [r3, #0] 800e232: 687a ldr r2, [r7, #4] 800e234: 6812 ldr r2, [r2, #0] 800e236: 6b52 ldr r2, [r2, #52] ; 0x34 800e238: f422 1140 bic.w r1, r2, #3145728 ; 0x300000 800e23c: 687a ldr r2, [r7, #4] 800e23e: 6912 ldr r2, [r2, #16] 800e240: 0510 lsls r0, r2, #20 800e242: 687a ldr r2, [r7, #4] 800e244: 6952 ldr r2, [r2, #20] 800e246: 0552 lsls r2, r2, #21 800e248: 4302 orrs r2, r0 800e24a: 430a orrs r2, r1 800e24c: 635a str r2, [r3, #52] ; 0x34 (hdma2d->Init.RedBlueSwap << DMA2D_OPFCCR_RBS_Pos))); #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ /* Update error code */ hdma2d->ErrorCode = HAL_DMA2D_ERROR_NONE; 800e24e: 687b ldr r3, [r7, #4] 800e250: 2200 movs r2, #0 800e252: 655a str r2, [r3, #84] ; 0x54 /* Initialize the DMA2D state*/ hdma2d->State = HAL_DMA2D_STATE_READY; 800e254: 687b ldr r3, [r7, #4] 800e256: 2201 movs r2, #1 800e258: f883 2051 strb.w r2, [r3, #81] ; 0x51 return HAL_OK; 800e25c: 2300 movs r3, #0 } 800e25e: 4618 mov r0, r3 800e260: 3708 adds r7, #8 800e262: 46bd mov sp, r7 800e264: bd80 pop {r7, pc} 800e266: bf00 nop 800e268: ffffc000 .word 0xffffc000 0800e26c : * @param Height The height of data to be transferred from source to destination (expressed in number of lines). * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height) { 800e26c: b580 push {r7, lr} 800e26e: b086 sub sp, #24 800e270: af02 add r7, sp, #8 800e272: 60f8 str r0, [r7, #12] 800e274: 60b9 str r1, [r7, #8] 800e276: 607a str r2, [r7, #4] 800e278: 603b str r3, [r7, #0] /* Check the parameters */ assert_param(IS_DMA2D_LINE(Height)); assert_param(IS_DMA2D_PIXEL(Width)); /* Process locked */ __HAL_LOCK(hdma2d); 800e27a: 68fb ldr r3, [r7, #12] 800e27c: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 800e280: 2b01 cmp r3, #1 800e282: d101 bne.n 800e288 800e284: 2302 movs r3, #2 800e286: e018 b.n 800e2ba 800e288: 68fb ldr r3, [r7, #12] 800e28a: 2201 movs r2, #1 800e28c: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 800e290: 68fb ldr r3, [r7, #12] 800e292: 2202 movs r2, #2 800e294: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Configure the source, destination address and the data size */ DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height); 800e298: 69bb ldr r3, [r7, #24] 800e29a: 9300 str r3, [sp, #0] 800e29c: 683b ldr r3, [r7, #0] 800e29e: 687a ldr r2, [r7, #4] 800e2a0: 68b9 ldr r1, [r7, #8] 800e2a2: 68f8 ldr r0, [r7, #12] 800e2a4: f000 f992 bl 800e5cc /* Enable the Peripheral */ __HAL_DMA2D_ENABLE(hdma2d); 800e2a8: 68fb ldr r3, [r7, #12] 800e2aa: 681b ldr r3, [r3, #0] 800e2ac: 68fa ldr r2, [r7, #12] 800e2ae: 6812 ldr r2, [r2, #0] 800e2b0: 6812 ldr r2, [r2, #0] 800e2b2: f042 0201 orr.w r2, r2, #1 800e2b6: 601a str r2, [r3, #0] return HAL_OK; 800e2b8: 2300 movs r3, #0 } 800e2ba: 4618 mov r0, r3 800e2bc: 3710 adds r7, #16 800e2be: 46bd mov sp, r7 800e2c0: bd80 pop {r7, pc} 0800e2c2 : * the configuration information for the DMA2D. * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout) { 800e2c2: b580 push {r7, lr} 800e2c4: b086 sub sp, #24 800e2c6: af00 add r7, sp, #0 800e2c8: 6078 str r0, [r7, #4] 800e2ca: 6039 str r1, [r7, #0] uint32_t tickstart; uint32_t layer_start; __IO uint32_t isrflags = 0x0U; 800e2cc: 2300 movs r3, #0 800e2ce: 60fb str r3, [r7, #12] /* Polling for DMA2D transfer */ if ((hdma2d->Instance->CR & DMA2D_CR_START) != 0U) 800e2d0: 687b ldr r3, [r7, #4] 800e2d2: 681b ldr r3, [r3, #0] 800e2d4: 681b ldr r3, [r3, #0] 800e2d6: f003 0301 and.w r3, r3, #1 800e2da: 2b00 cmp r3, #0 800e2dc: d056 beq.n 800e38c { /* Get tick */ tickstart = HAL_GetTick(); 800e2de: f7ff fbe1 bl 800daa4 800e2e2: 6178 str r0, [r7, #20] while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U) 800e2e4: e04b b.n 800e37e { isrflags = READ_REG(hdma2d->Instance->ISR); 800e2e6: 687b ldr r3, [r7, #4] 800e2e8: 681b ldr r3, [r3, #0] 800e2ea: 685b ldr r3, [r3, #4] 800e2ec: 60fb str r3, [r7, #12] if ((isrflags & (DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U) 800e2ee: 68fb ldr r3, [r7, #12] 800e2f0: f003 0321 and.w r3, r3, #33 ; 0x21 800e2f4: 2b00 cmp r3, #0 800e2f6: d023 beq.n 800e340 { if ((isrflags & DMA2D_FLAG_CE) != 0U) 800e2f8: 68fb ldr r3, [r7, #12] 800e2fa: f003 0320 and.w r3, r3, #32 800e2fe: 2b00 cmp r3, #0 800e300: d005 beq.n 800e30e { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE; 800e302: 687b ldr r3, [r7, #4] 800e304: 6d5b ldr r3, [r3, #84] ; 0x54 800e306: f043 0202 orr.w r2, r3, #2 800e30a: 687b ldr r3, [r7, #4] 800e30c: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_TE) != 0U) 800e30e: 68fb ldr r3, [r7, #12] 800e310: f003 0301 and.w r3, r3, #1 800e314: 2b00 cmp r3, #0 800e316: d005 beq.n 800e324 { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE; 800e318: 687b ldr r3, [r7, #4] 800e31a: 6d5b ldr r3, [r3, #84] ; 0x54 800e31c: f043 0201 orr.w r2, r3, #1 800e320: 687b ldr r3, [r7, #4] 800e322: 655a str r2, [r3, #84] ; 0x54 } /* Clear the transfer and configuration error flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE); 800e324: 687b ldr r3, [r7, #4] 800e326: 681b ldr r3, [r3, #0] 800e328: 2221 movs r2, #33 ; 0x21 800e32a: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_ERROR; 800e32c: 687b ldr r3, [r7, #4] 800e32e: 2204 movs r2, #4 800e330: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 800e334: 687b ldr r3, [r7, #4] 800e336: 2200 movs r2, #0 800e338: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_ERROR; 800e33c: 2301 movs r3, #1 800e33e: e0a5 b.n 800e48c } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 800e340: 683b ldr r3, [r7, #0] 800e342: f1b3 3fff cmp.w r3, #4294967295 800e346: d01a beq.n 800e37e { if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 800e348: f7ff fbac bl 800daa4 800e34c: 4602 mov r2, r0 800e34e: 697b ldr r3, [r7, #20] 800e350: 1ad2 subs r2, r2, r3 800e352: 683b ldr r3, [r7, #0] 800e354: 429a cmp r2, r3 800e356: d802 bhi.n 800e35e 800e358: 683b ldr r3, [r7, #0] 800e35a: 2b00 cmp r3, #0 800e35c: d10f bne.n 800e37e { /* Update error code */ hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT; 800e35e: 687b ldr r3, [r7, #4] 800e360: 6d5b ldr r3, [r3, #84] ; 0x54 800e362: f043 0220 orr.w r2, r3, #32 800e366: 687b ldr r3, [r7, #4] 800e368: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_TIMEOUT; 800e36a: 687b ldr r3, [r7, #4] 800e36c: 2203 movs r2, #3 800e36e: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 800e372: 687b ldr r3, [r7, #4] 800e374: 2200 movs r2, #0 800e376: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; 800e37a: 2303 movs r3, #3 800e37c: e086 b.n 800e48c while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U) 800e37e: 687b ldr r3, [r7, #4] 800e380: 681b ldr r3, [r3, #0] 800e382: 685b ldr r3, [r3, #4] 800e384: f003 0302 and.w r3, r3, #2 800e388: 2b00 cmp r3, #0 800e38a: d0ac beq.n 800e2e6 } } } } /* Polling for CLUT loading (foreground or background) */ layer_start = hdma2d->Instance->FGPFCCR & DMA2D_FGPFCCR_START; 800e38c: 687b ldr r3, [r7, #4] 800e38e: 681b ldr r3, [r3, #0] 800e390: 69db ldr r3, [r3, #28] 800e392: f003 0320 and.w r3, r3, #32 800e396: 613b str r3, [r7, #16] layer_start |= hdma2d->Instance->BGPFCCR & DMA2D_BGPFCCR_START; 800e398: 687b ldr r3, [r7, #4] 800e39a: 681b ldr r3, [r3, #0] 800e39c: 6a5b ldr r3, [r3, #36] ; 0x24 800e39e: f003 0320 and.w r3, r3, #32 800e3a2: 693a ldr r2, [r7, #16] 800e3a4: 4313 orrs r3, r2 800e3a6: 613b str r3, [r7, #16] if (layer_start != 0U) 800e3a8: 693b ldr r3, [r7, #16] 800e3aa: 2b00 cmp r3, #0 800e3ac: d061 beq.n 800e472 { /* Get tick */ tickstart = HAL_GetTick(); 800e3ae: f7ff fb79 bl 800daa4 800e3b2: 6178 str r0, [r7, #20] while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U) 800e3b4: e056 b.n 800e464 { isrflags = READ_REG(hdma2d->Instance->ISR); 800e3b6: 687b ldr r3, [r7, #4] 800e3b8: 681b ldr r3, [r3, #0] 800e3ba: 685b ldr r3, [r3, #4] 800e3bc: 60fb str r3, [r7, #12] if ((isrflags & (DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U) 800e3be: 68fb ldr r3, [r7, #12] 800e3c0: f003 0329 and.w r3, r3, #41 ; 0x29 800e3c4: 2b00 cmp r3, #0 800e3c6: d02e beq.n 800e426 { if ((isrflags & DMA2D_FLAG_CAE) != 0U) 800e3c8: 68fb ldr r3, [r7, #12] 800e3ca: f003 0308 and.w r3, r3, #8 800e3ce: 2b00 cmp r3, #0 800e3d0: d005 beq.n 800e3de { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CAE; 800e3d2: 687b ldr r3, [r7, #4] 800e3d4: 6d5b ldr r3, [r3, #84] ; 0x54 800e3d6: f043 0204 orr.w r2, r3, #4 800e3da: 687b ldr r3, [r7, #4] 800e3dc: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_CE) != 0U) 800e3de: 68fb ldr r3, [r7, #12] 800e3e0: f003 0320 and.w r3, r3, #32 800e3e4: 2b00 cmp r3, #0 800e3e6: d005 beq.n 800e3f4 { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE; 800e3e8: 687b ldr r3, [r7, #4] 800e3ea: 6d5b ldr r3, [r3, #84] ; 0x54 800e3ec: f043 0202 orr.w r2, r3, #2 800e3f0: 687b ldr r3, [r7, #4] 800e3f2: 655a str r2, [r3, #84] ; 0x54 } if ((isrflags & DMA2D_FLAG_TE) != 0U) 800e3f4: 68fb ldr r3, [r7, #12] 800e3f6: f003 0301 and.w r3, r3, #1 800e3fa: 2b00 cmp r3, #0 800e3fc: d005 beq.n 800e40a { hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE; 800e3fe: 687b ldr r3, [r7, #4] 800e400: 6d5b ldr r3, [r3, #84] ; 0x54 800e402: f043 0201 orr.w r2, r3, #1 800e406: 687b ldr r3, [r7, #4] 800e408: 655a str r2, [r3, #84] ; 0x54 } /* Clear the CLUT Access Error, Configuration Error and Transfer Error flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE); 800e40a: 687b ldr r3, [r7, #4] 800e40c: 681b ldr r3, [r3, #0] 800e40e: 2229 movs r2, #41 ; 0x29 800e410: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_ERROR; 800e412: 687b ldr r3, [r7, #4] 800e414: 2204 movs r2, #4 800e416: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 800e41a: 687b ldr r3, [r7, #4] 800e41c: 2200 movs r2, #0 800e41e: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_ERROR; 800e422: 2301 movs r3, #1 800e424: e032 b.n 800e48c } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 800e426: 683b ldr r3, [r7, #0] 800e428: f1b3 3fff cmp.w r3, #4294967295 800e42c: d01a beq.n 800e464 { if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 800e42e: f7ff fb39 bl 800daa4 800e432: 4602 mov r2, r0 800e434: 697b ldr r3, [r7, #20] 800e436: 1ad2 subs r2, r2, r3 800e438: 683b ldr r3, [r7, #0] 800e43a: 429a cmp r2, r3 800e43c: d802 bhi.n 800e444 800e43e: 683b ldr r3, [r7, #0] 800e440: 2b00 cmp r3, #0 800e442: d10f bne.n 800e464 { /* Update error code */ hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT; 800e444: 687b ldr r3, [r7, #4] 800e446: 6d5b ldr r3, [r3, #84] ; 0x54 800e448: f043 0220 orr.w r2, r3, #32 800e44c: 687b ldr r3, [r7, #4] 800e44e: 655a str r2, [r3, #84] ; 0x54 /* Change the DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_TIMEOUT; 800e450: 687b ldr r3, [r7, #4] 800e452: 2203 movs r2, #3 800e454: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 800e458: 687b ldr r3, [r7, #4] 800e45a: 2200 movs r2, #0 800e45c: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; 800e460: 2303 movs r3, #3 800e462: e013 b.n 800e48c while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U) 800e464: 687b ldr r3, [r7, #4] 800e466: 681b ldr r3, [r3, #0] 800e468: 685b ldr r3, [r3, #4] 800e46a: f003 0310 and.w r3, r3, #16 800e46e: 2b00 cmp r3, #0 800e470: d0a1 beq.n 800e3b6 } } } /* Clear the transfer complete and CLUT loading flags */ __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC | DMA2D_FLAG_CTC); 800e472: 687b ldr r3, [r7, #4] 800e474: 681b ldr r3, [r3, #0] 800e476: 2212 movs r2, #18 800e478: 609a str r2, [r3, #8] /* Change DMA2D state */ hdma2d->State = HAL_DMA2D_STATE_READY; 800e47a: 687b ldr r3, [r7, #4] 800e47c: 2201 movs r2, #1 800e47e: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 800e482: 687b ldr r3, [r7, #4] 800e484: 2200 movs r2, #0 800e486: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_OK; 800e48a: 2300 movs r3, #0 } 800e48c: 4618 mov r0, r3 800e48e: 3718 adds r7, #24 800e490: 46bd mov sp, r7 800e492: bd80 pop {r7, pc} 0800e494 : * This parameter can be one of the following values: * DMA2D_BACKGROUND_LAYER(0) / DMA2D_FOREGROUND_LAYER(1) * @retval HAL status */ HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx) { 800e494: b480 push {r7} 800e496: b087 sub sp, #28 800e498: af00 add r7, sp, #0 800e49a: 6078 str r0, [r7, #4] 800e49c: 6039 str r1, [r7, #0] uint32_t regValue; /* Check the parameters */ assert_param(IS_DMA2D_LAYER(LayerIdx)); assert_param(IS_DMA2D_OFFSET(hdma2d->LayerCfg[LayerIdx].InputOffset)); if (hdma2d->Init.Mode != DMA2D_R2M) 800e49e: 687b ldr r3, [r7, #4] 800e4a0: 685b ldr r3, [r3, #4] 800e4a2: f5b3 3f40 cmp.w r3, #196608 ; 0x30000 assert_param(IS_DMA2D_ALPHA_INVERTED(hdma2d->LayerCfg[LayerIdx].AlphaInverted)); assert_param(IS_DMA2D_RB_SWAP(hdma2d->LayerCfg[LayerIdx].RedBlueSwap)); #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ /* Process locked */ __HAL_LOCK(hdma2d); 800e4a6: 687b ldr r3, [r7, #4] 800e4a8: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 800e4ac: 2b01 cmp r3, #1 800e4ae: d101 bne.n 800e4b4 800e4b0: 2302 movs r3, #2 800e4b2: e082 b.n 800e5ba 800e4b4: 687b ldr r3, [r7, #4] 800e4b6: 2201 movs r2, #1 800e4b8: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Change DMA2D peripheral state */ hdma2d->State = HAL_DMA2D_STATE_BUSY; 800e4bc: 687b ldr r3, [r7, #4] 800e4be: 2202 movs r2, #2 800e4c0: f883 2051 strb.w r2, [r3, #81] ; 0x51 pLayerCfg = &hdma2d->LayerCfg[LayerIdx]; 800e4c4: 683a ldr r2, [r7, #0] 800e4c6: 4613 mov r3, r2 800e4c8: 005b lsls r3, r3, #1 800e4ca: 4413 add r3, r2 800e4cc: 00db lsls r3, r3, #3 800e4ce: 3320 adds r3, #32 800e4d0: 687a ldr r2, [r7, #4] 800e4d2: 4413 add r3, r2 800e4d4: 613b str r3, [r7, #16] /* Prepare the value to be written to the BGPFCCR or FGPFCCR register */ #if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT) regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 800e4d6: 693b ldr r3, [r7, #16] 800e4d8: 685a ldr r2, [r3, #4] 800e4da: 693b ldr r3, [r7, #16] 800e4dc: 689b ldr r3, [r3, #8] 800e4de: 041b lsls r3, r3, #16 800e4e0: 431a orrs r2, r3 (pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos); 800e4e2: 693b ldr r3, [r7, #16] 800e4e4: 691b ldr r3, [r3, #16] 800e4e6: 051b lsls r3, r3, #20 regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 800e4e8: 431a orrs r2, r3 (pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos); 800e4ea: 693b ldr r3, [r7, #16] 800e4ec: 695b ldr r3, [r3, #20] 800e4ee: 055b lsls r3, r3, #21 regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \ 800e4f0: 4313 orrs r3, r2 800e4f2: 617b str r3, [r7, #20] regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS); 800e4f4: 4b34 ldr r3, [pc, #208] ; (800e5c8 ) 800e4f6: 60fb str r3, [r7, #12] regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos); regMask = DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA; #endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 800e4f8: 693b ldr r3, [r7, #16] 800e4fa: 685b ldr r3, [r3, #4] 800e4fc: 2b0a cmp r3, #10 800e4fe: d003 beq.n 800e508 800e500: 693b ldr r3, [r7, #16] 800e502: 685b ldr r3, [r3, #4] 800e504: 2b09 cmp r3, #9 800e506: d107 bne.n 800e518 { regValue |= (pLayerCfg->InputAlpha & DMA2D_BGPFCCR_ALPHA); 800e508: 693b ldr r3, [r7, #16] 800e50a: 68db ldr r3, [r3, #12] 800e50c: f003 437f and.w r3, r3, #4278190080 ; 0xff000000 800e510: 697a ldr r2, [r7, #20] 800e512: 4313 orrs r3, r2 800e514: 617b str r3, [r7, #20] 800e516: e005 b.n 800e524 } else { regValue |= (pLayerCfg->InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos); 800e518: 693b ldr r3, [r7, #16] 800e51a: 68db ldr r3, [r3, #12] 800e51c: 061b lsls r3, r3, #24 800e51e: 697a ldr r2, [r7, #20] 800e520: 4313 orrs r3, r2 800e522: 617b str r3, [r7, #20] } /* Configure the background DMA2D layer */ if (LayerIdx == DMA2D_BACKGROUND_LAYER) 800e524: 683b ldr r3, [r7, #0] 800e526: 2b00 cmp r3, #0 800e528: d11f bne.n 800e56a { /* Write DMA2D BGPFCCR register */ MODIFY_REG(hdma2d->Instance->BGPFCCR, regMask, regValue); 800e52a: 687b ldr r3, [r7, #4] 800e52c: 681b ldr r3, [r3, #0] 800e52e: 687a ldr r2, [r7, #4] 800e530: 6812 ldr r2, [r2, #0] 800e532: 6a51 ldr r1, [r2, #36] ; 0x24 800e534: 68fa ldr r2, [r7, #12] 800e536: 43d2 mvns r2, r2 800e538: 4011 ands r1, r2 800e53a: 697a ldr r2, [r7, #20] 800e53c: 430a orrs r2, r1 800e53e: 625a str r2, [r3, #36] ; 0x24 /* DMA2D BGOR register configuration -------------------------------------*/ WRITE_REG(hdma2d->Instance->BGOR, pLayerCfg->InputOffset); 800e540: 687b ldr r3, [r7, #4] 800e542: 681b ldr r3, [r3, #0] 800e544: 693a ldr r2, [r7, #16] 800e546: 6812 ldr r2, [r2, #0] 800e548: 619a str r2, [r3, #24] /* DMA2D BGCOLR register configuration -------------------------------------*/ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 800e54a: 693b ldr r3, [r7, #16] 800e54c: 685b ldr r3, [r3, #4] 800e54e: 2b0a cmp r3, #10 800e550: d003 beq.n 800e55a 800e552: 693b ldr r3, [r7, #16] 800e554: 685b ldr r3, [r3, #4] 800e556: 2b09 cmp r3, #9 800e558: d126 bne.n 800e5a8 { WRITE_REG(hdma2d->Instance->BGCOLR, pLayerCfg->InputAlpha & (DMA2D_BGCOLR_BLUE | DMA2D_BGCOLR_GREEN | \ 800e55a: 687b ldr r3, [r7, #4] 800e55c: 681b ldr r3, [r3, #0] 800e55e: 693a ldr r2, [r7, #16] 800e560: 68d2 ldr r2, [r2, #12] 800e562: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 800e566: 629a str r2, [r3, #40] ; 0x28 800e568: e01e b.n 800e5a8 else { /* Write DMA2D FGPFCCR register */ MODIFY_REG(hdma2d->Instance->FGPFCCR, regMask, regValue); 800e56a: 687b ldr r3, [r7, #4] 800e56c: 681b ldr r3, [r3, #0] 800e56e: 687a ldr r2, [r7, #4] 800e570: 6812 ldr r2, [r2, #0] 800e572: 69d1 ldr r1, [r2, #28] 800e574: 68fa ldr r2, [r7, #12] 800e576: 43d2 mvns r2, r2 800e578: 4011 ands r1, r2 800e57a: 697a ldr r2, [r7, #20] 800e57c: 430a orrs r2, r1 800e57e: 61da str r2, [r3, #28] /* DMA2D FGOR register configuration -------------------------------------*/ WRITE_REG(hdma2d->Instance->FGOR, pLayerCfg->InputOffset); 800e580: 687b ldr r3, [r7, #4] 800e582: 681b ldr r3, [r3, #0] 800e584: 693a ldr r2, [r7, #16] 800e586: 6812 ldr r2, [r2, #0] 800e588: 611a str r2, [r3, #16] /* DMA2D FGCOLR register configuration -------------------------------------*/ if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8)) 800e58a: 693b ldr r3, [r7, #16] 800e58c: 685b ldr r3, [r3, #4] 800e58e: 2b0a cmp r3, #10 800e590: d003 beq.n 800e59a 800e592: 693b ldr r3, [r7, #16] 800e594: 685b ldr r3, [r3, #4] 800e596: 2b09 cmp r3, #9 800e598: d106 bne.n 800e5a8 { WRITE_REG(hdma2d->Instance->FGCOLR, pLayerCfg->InputAlpha & (DMA2D_FGCOLR_BLUE | DMA2D_FGCOLR_GREEN | \ 800e59a: 687b ldr r3, [r7, #4] 800e59c: 681b ldr r3, [r3, #0] 800e59e: 693a ldr r2, [r7, #16] 800e5a0: 68d2 ldr r2, [r2, #12] 800e5a2: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 800e5a6: 621a str r2, [r3, #32] DMA2D_FGCOLR_RED)); } } /* Initialize the DMA2D state*/ hdma2d->State = HAL_DMA2D_STATE_READY; 800e5a8: 687b ldr r3, [r7, #4] 800e5aa: 2201 movs r2, #1 800e5ac: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process unlocked */ __HAL_UNLOCK(hdma2d); 800e5b0: 687b ldr r3, [r7, #4] 800e5b2: 2200 movs r2, #0 800e5b4: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_OK; 800e5b8: 2300 movs r3, #0 } 800e5ba: 4618 mov r0, r3 800e5bc: 371c adds r7, #28 800e5be: 46bd mov sp, r7 800e5c0: f85d 7b04 ldr.w r7, [sp], #4 800e5c4: 4770 bx lr 800e5c6: bf00 nop 800e5c8: ff33000f .word 0xff33000f 0800e5cc : * @param Height The height of data to be transferred from source to destination. * @retval HAL status */ static void DMA2D_SetConfig(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height) { 800e5cc: b480 push {r7} 800e5ce: b08b sub sp, #44 ; 0x2c 800e5d0: af00 add r7, sp, #0 800e5d2: 60f8 str r0, [r7, #12] 800e5d4: 60b9 str r1, [r7, #8] 800e5d6: 607a str r2, [r7, #4] 800e5d8: 603b str r3, [r7, #0] uint32_t tmp2; uint32_t tmp3; uint32_t tmp4; /* Configure DMA2D data size */ MODIFY_REG(hdma2d->Instance->NLR, (DMA2D_NLR_NL | DMA2D_NLR_PL), (Height | (Width << DMA2D_NLR_PL_Pos))); 800e5da: 68fb ldr r3, [r7, #12] 800e5dc: 681b ldr r3, [r3, #0] 800e5de: 68fa ldr r2, [r7, #12] 800e5e0: 6812 ldr r2, [r2, #0] 800e5e2: 6c52 ldr r2, [r2, #68] ; 0x44 800e5e4: f002 4140 and.w r1, r2, #3221225472 ; 0xc0000000 800e5e8: 683a ldr r2, [r7, #0] 800e5ea: 0410 lsls r0, r2, #16 800e5ec: 6b3a ldr r2, [r7, #48] ; 0x30 800e5ee: 4302 orrs r2, r0 800e5f0: 430a orrs r2, r1 800e5f2: 645a str r2, [r3, #68] ; 0x44 /* Configure DMA2D destination address */ WRITE_REG(hdma2d->Instance->OMAR, DstAddress); 800e5f4: 68fb ldr r3, [r7, #12] 800e5f6: 681b ldr r3, [r3, #0] 800e5f8: 687a ldr r2, [r7, #4] 800e5fa: 63da str r2, [r3, #60] ; 0x3c /* Register to memory DMA2D mode selected */ if (hdma2d->Init.Mode == DMA2D_R2M) 800e5fc: 68fb ldr r3, [r7, #12] 800e5fe: 685b ldr r3, [r3, #4] 800e600: f5b3 3f40 cmp.w r3, #196608 ; 0x30000 800e604: d174 bne.n 800e6f0 { tmp1 = pdata & DMA2D_OCOLR_ALPHA_1; 800e606: 68bb ldr r3, [r7, #8] 800e608: f003 437f and.w r3, r3, #4278190080 ; 0xff000000 800e60c: 623b str r3, [r7, #32] tmp2 = pdata & DMA2D_OCOLR_RED_1; 800e60e: 68bb ldr r3, [r7, #8] 800e610: f403 037f and.w r3, r3, #16711680 ; 0xff0000 800e614: 61fb str r3, [r7, #28] tmp3 = pdata & DMA2D_OCOLR_GREEN_1; 800e616: 68bb ldr r3, [r7, #8] 800e618: f403 437f and.w r3, r3, #65280 ; 0xff00 800e61c: 61bb str r3, [r7, #24] tmp4 = pdata & DMA2D_OCOLR_BLUE_1; 800e61e: 68bb ldr r3, [r7, #8] 800e620: b2db uxtb r3, r3 800e622: 617b str r3, [r7, #20] /* Prepare the value to be written to the OCOLR register according to the color mode */ if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB8888) 800e624: 68fb ldr r3, [r7, #12] 800e626: 689b ldr r3, [r3, #8] 800e628: 2b00 cmp r3, #0 800e62a: d108 bne.n 800e63e { tmp = (tmp3 | tmp2 | tmp1 | tmp4); 800e62c: 69ba ldr r2, [r7, #24] 800e62e: 69fb ldr r3, [r7, #28] 800e630: 431a orrs r2, r3 800e632: 6a3b ldr r3, [r7, #32] 800e634: 431a orrs r2, r3 800e636: 697b ldr r3, [r7, #20] 800e638: 4313 orrs r3, r2 800e63a: 627b str r3, [r7, #36] ; 0x24 800e63c: e053 b.n 800e6e6 } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB888) 800e63e: 68fb ldr r3, [r7, #12] 800e640: 689b ldr r3, [r3, #8] 800e642: 2b01 cmp r3, #1 800e644: d106 bne.n 800e654 { tmp = (tmp3 | tmp2 | tmp4); 800e646: 69ba ldr r2, [r7, #24] 800e648: 69fb ldr r3, [r7, #28] 800e64a: 431a orrs r2, r3 800e64c: 697b ldr r3, [r7, #20] 800e64e: 4313 orrs r3, r2 800e650: 627b str r3, [r7, #36] ; 0x24 800e652: e048 b.n 800e6e6 } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB565) 800e654: 68fb ldr r3, [r7, #12] 800e656: 689b ldr r3, [r3, #8] 800e658: 2b02 cmp r3, #2 800e65a: d111 bne.n 800e680 { tmp2 = (tmp2 >> 19U); 800e65c: 69fb ldr r3, [r7, #28] 800e65e: 0cdb lsrs r3, r3, #19 800e660: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 10U); 800e662: 69bb ldr r3, [r7, #24] 800e664: 0a9b lsrs r3, r3, #10 800e666: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 3U); 800e668: 697b ldr r3, [r7, #20] 800e66a: 08db lsrs r3, r3, #3 800e66c: 617b str r3, [r7, #20] tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4); 800e66e: 69bb ldr r3, [r7, #24] 800e670: 015a lsls r2, r3, #5 800e672: 69fb ldr r3, [r7, #28] 800e674: 02db lsls r3, r3, #11 800e676: 431a orrs r2, r3 800e678: 697b ldr r3, [r7, #20] 800e67a: 4313 orrs r3, r2 800e67c: 627b str r3, [r7, #36] ; 0x24 800e67e: e032 b.n 800e6e6 } else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB1555) 800e680: 68fb ldr r3, [r7, #12] 800e682: 689b ldr r3, [r3, #8] 800e684: 2b03 cmp r3, #3 800e686: d117 bne.n 800e6b8 { tmp1 = (tmp1 >> 31U); 800e688: 6a3b ldr r3, [r7, #32] 800e68a: 0fdb lsrs r3, r3, #31 800e68c: 623b str r3, [r7, #32] tmp2 = (tmp2 >> 19U); 800e68e: 69fb ldr r3, [r7, #28] 800e690: 0cdb lsrs r3, r3, #19 800e692: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 11U); 800e694: 69bb ldr r3, [r7, #24] 800e696: 0adb lsrs r3, r3, #11 800e698: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 3U); 800e69a: 697b ldr r3, [r7, #20] 800e69c: 08db lsrs r3, r3, #3 800e69e: 617b str r3, [r7, #20] tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4); 800e6a0: 69bb ldr r3, [r7, #24] 800e6a2: 015a lsls r2, r3, #5 800e6a4: 69fb ldr r3, [r7, #28] 800e6a6: 029b lsls r3, r3, #10 800e6a8: 431a orrs r2, r3 800e6aa: 6a3b ldr r3, [r7, #32] 800e6ac: 03db lsls r3, r3, #15 800e6ae: 431a orrs r2, r3 800e6b0: 697b ldr r3, [r7, #20] 800e6b2: 4313 orrs r3, r2 800e6b4: 627b str r3, [r7, #36] ; 0x24 800e6b6: e016 b.n 800e6e6 } else /* Dhdma2d->Init.ColorMode = DMA2D_OUTPUT_ARGB4444 */ { tmp1 = (tmp1 >> 28U); 800e6b8: 6a3b ldr r3, [r7, #32] 800e6ba: 0f1b lsrs r3, r3, #28 800e6bc: 623b str r3, [r7, #32] tmp2 = (tmp2 >> 20U); 800e6be: 69fb ldr r3, [r7, #28] 800e6c0: 0d1b lsrs r3, r3, #20 800e6c2: 61fb str r3, [r7, #28] tmp3 = (tmp3 >> 12U); 800e6c4: 69bb ldr r3, [r7, #24] 800e6c6: 0b1b lsrs r3, r3, #12 800e6c8: 61bb str r3, [r7, #24] tmp4 = (tmp4 >> 4U); 800e6ca: 697b ldr r3, [r7, #20] 800e6cc: 091b lsrs r3, r3, #4 800e6ce: 617b str r3, [r7, #20] tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4); 800e6d0: 69bb ldr r3, [r7, #24] 800e6d2: 011a lsls r2, r3, #4 800e6d4: 69fb ldr r3, [r7, #28] 800e6d6: 021b lsls r3, r3, #8 800e6d8: 431a orrs r2, r3 800e6da: 6a3b ldr r3, [r7, #32] 800e6dc: 031b lsls r3, r3, #12 800e6de: 431a orrs r2, r3 800e6e0: 697b ldr r3, [r7, #20] 800e6e2: 4313 orrs r3, r2 800e6e4: 627b str r3, [r7, #36] ; 0x24 } /* Write to DMA2D OCOLR register */ WRITE_REG(hdma2d->Instance->OCOLR, tmp); 800e6e6: 68fb ldr r3, [r7, #12] 800e6e8: 681b ldr r3, [r3, #0] 800e6ea: 6a7a ldr r2, [r7, #36] ; 0x24 800e6ec: 639a str r2, [r3, #56] ; 0x38 else /* M2M, M2M_PFC or M2M_Blending DMA2D Mode */ { /* Configure DMA2D source address */ WRITE_REG(hdma2d->Instance->FGMAR, pdata); } } 800e6ee: e003 b.n 800e6f8 WRITE_REG(hdma2d->Instance->FGMAR, pdata); 800e6f0: 68fb ldr r3, [r7, #12] 800e6f2: 681b ldr r3, [r3, #0] 800e6f4: 68ba ldr r2, [r7, #8] 800e6f6: 60da str r2, [r3, #12] } 800e6f8: bf00 nop 800e6fa: 372c adds r7, #44 ; 0x2c 800e6fc: 46bd mov sp, r7 800e6fe: f85d 7b04 ldr.w r7, [sp], #4 800e702: 4770 bx lr 0800e704 : * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains * the configuration information for the specified GPIO peripheral. * @retval None */ void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) { 800e704: b480 push {r7} 800e706: b089 sub sp, #36 ; 0x24 800e708: af00 add r7, sp, #0 800e70a: 6078 str r0, [r7, #4] 800e70c: 6039 str r1, [r7, #0] uint32_t position = 0x00; 800e70e: 2300 movs r3, #0 800e710: 61fb str r3, [r7, #28] uint32_t ioposition = 0x00; 800e712: 2300 movs r3, #0 800e714: 617b str r3, [r7, #20] uint32_t iocurrent = 0x00; 800e716: 2300 movs r3, #0 800e718: 613b str r3, [r7, #16] uint32_t temp = 0x00; 800e71a: 2300 movs r3, #0 800e71c: 61bb str r3, [r7, #24] assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); /* Configure the port pins */ for(position = 0; position < GPIO_NUMBER; position++) 800e71e: 2300 movs r3, #0 800e720: 61fb str r3, [r7, #28] 800e722: e175 b.n 800ea10 { /* Get the IO position */ ioposition = ((uint32_t)0x01) << position; 800e724: 2201 movs r2, #1 800e726: 69fb ldr r3, [r7, #28] 800e728: fa02 f303 lsl.w r3, r2, r3 800e72c: 617b str r3, [r7, #20] /* Get the current IO position */ iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; 800e72e: 683b ldr r3, [r7, #0] 800e730: 681a ldr r2, [r3, #0] 800e732: 697b ldr r3, [r7, #20] 800e734: 4013 ands r3, r2 800e736: 613b str r3, [r7, #16] if(iocurrent == ioposition) 800e738: 693a ldr r2, [r7, #16] 800e73a: 697b ldr r3, [r7, #20] 800e73c: 429a cmp r2, r3 800e73e: f040 8164 bne.w 800ea0a { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) 800e742: 683b ldr r3, [r7, #0] 800e744: 685b ldr r3, [r3, #4] 800e746: f003 0303 and.w r3, r3, #3 800e74a: 2b01 cmp r3, #1 800e74c: d005 beq.n 800e75a 800e74e: 683b ldr r3, [r7, #0] 800e750: 685b ldr r3, [r3, #4] 800e752: f003 0303 and.w r3, r3, #3 800e756: 2b02 cmp r3, #2 800e758: d130 bne.n 800e7bc { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; 800e75a: 687b ldr r3, [r7, #4] 800e75c: 689b ldr r3, [r3, #8] 800e75e: 61bb str r3, [r7, #24] temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); 800e760: 69fb ldr r3, [r7, #28] 800e762: 005b lsls r3, r3, #1 800e764: 2203 movs r2, #3 800e766: fa02 f303 lsl.w r3, r2, r3 800e76a: 43db mvns r3, r3 800e76c: 69ba ldr r2, [r7, #24] 800e76e: 4013 ands r3, r2 800e770: 61bb str r3, [r7, #24] temp |= (GPIO_Init->Speed << (position * 2)); 800e772: 683b ldr r3, [r7, #0] 800e774: 68da ldr r2, [r3, #12] 800e776: 69fb ldr r3, [r7, #28] 800e778: 005b lsls r3, r3, #1 800e77a: fa02 f303 lsl.w r3, r2, r3 800e77e: 69ba ldr r2, [r7, #24] 800e780: 4313 orrs r3, r2 800e782: 61bb str r3, [r7, #24] GPIOx->OSPEEDR = temp; 800e784: 687b ldr r3, [r7, #4] 800e786: 69ba ldr r2, [r7, #24] 800e788: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; 800e78a: 687b ldr r3, [r7, #4] 800e78c: 685b ldr r3, [r3, #4] 800e78e: 61bb str r3, [r7, #24] temp &= ~(GPIO_OTYPER_OT_0 << position) ; 800e790: 2201 movs r2, #1 800e792: 69fb ldr r3, [r7, #28] 800e794: fa02 f303 lsl.w r3, r2, r3 800e798: 43db mvns r3, r3 800e79a: 69ba ldr r2, [r7, #24] 800e79c: 4013 ands r3, r2 800e79e: 61bb str r3, [r7, #24] temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); 800e7a0: 683b ldr r3, [r7, #0] 800e7a2: 685b ldr r3, [r3, #4] 800e7a4: 091b lsrs r3, r3, #4 800e7a6: f003 0201 and.w r2, r3, #1 800e7aa: 69fb ldr r3, [r7, #28] 800e7ac: fa02 f303 lsl.w r3, r2, r3 800e7b0: 69ba ldr r2, [r7, #24] 800e7b2: 4313 orrs r3, r2 800e7b4: 61bb str r3, [r7, #24] GPIOx->OTYPER = temp; 800e7b6: 687b ldr r3, [r7, #4] 800e7b8: 69ba ldr r2, [r7, #24] 800e7ba: 605a str r2, [r3, #4] } if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) 800e7bc: 683b ldr r3, [r7, #0] 800e7be: 685b ldr r3, [r3, #4] 800e7c0: f003 0303 and.w r3, r3, #3 800e7c4: 2b03 cmp r3, #3 800e7c6: d017 beq.n 800e7f8 { /* Check the Pull parameter */ assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); /* Activate the Pull-up or Pull down resistor for the current IO */ temp = GPIOx->PUPDR; 800e7c8: 687b ldr r3, [r7, #4] 800e7ca: 68db ldr r3, [r3, #12] 800e7cc: 61bb str r3, [r7, #24] temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2)); 800e7ce: 69fb ldr r3, [r7, #28] 800e7d0: 005b lsls r3, r3, #1 800e7d2: 2203 movs r2, #3 800e7d4: fa02 f303 lsl.w r3, r2, r3 800e7d8: 43db mvns r3, r3 800e7da: 69ba ldr r2, [r7, #24] 800e7dc: 4013 ands r3, r2 800e7de: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Pull) << (position * 2)); 800e7e0: 683b ldr r3, [r7, #0] 800e7e2: 689a ldr r2, [r3, #8] 800e7e4: 69fb ldr r3, [r7, #28] 800e7e6: 005b lsls r3, r3, #1 800e7e8: fa02 f303 lsl.w r3, r2, r3 800e7ec: 69ba ldr r2, [r7, #24] 800e7ee: 4313 orrs r3, r2 800e7f0: 61bb str r3, [r7, #24] GPIOx->PUPDR = temp; 800e7f2: 687b ldr r3, [r7, #4] 800e7f4: 69ba ldr r2, [r7, #24] 800e7f6: 60da str r2, [r3, #12] } /* In case of Alternate function mode selection */ if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) 800e7f8: 683b ldr r3, [r7, #0] 800e7fa: 685b ldr r3, [r3, #4] 800e7fc: f003 0303 and.w r3, r3, #3 800e800: 2b02 cmp r3, #2 800e802: d123 bne.n 800e84c { /* Check the Alternate function parameter */ assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); /* Configure Alternate function mapped with the current IO */ temp = GPIOx->AFR[position >> 3]; 800e804: 69fb ldr r3, [r7, #28] 800e806: 08da lsrs r2, r3, #3 800e808: 687b ldr r3, [r7, #4] 800e80a: 3208 adds r2, #8 800e80c: f853 3022 ldr.w r3, [r3, r2, lsl #2] 800e810: 61bb str r3, [r7, #24] temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ; 800e812: 69fb ldr r3, [r7, #28] 800e814: f003 0307 and.w r3, r3, #7 800e818: 009b lsls r3, r3, #2 800e81a: 220f movs r2, #15 800e81c: fa02 f303 lsl.w r3, r2, r3 800e820: 43db mvns r3, r3 800e822: 69ba ldr r2, [r7, #24] 800e824: 4013 ands r3, r2 800e826: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4)); 800e828: 683b ldr r3, [r7, #0] 800e82a: 691a ldr r2, [r3, #16] 800e82c: 69fb ldr r3, [r7, #28] 800e82e: f003 0307 and.w r3, r3, #7 800e832: 009b lsls r3, r3, #2 800e834: fa02 f303 lsl.w r3, r2, r3 800e838: 69ba ldr r2, [r7, #24] 800e83a: 4313 orrs r3, r2 800e83c: 61bb str r3, [r7, #24] GPIOx->AFR[position >> 3] = temp; 800e83e: 69fb ldr r3, [r7, #28] 800e840: 08da lsrs r2, r3, #3 800e842: 687b ldr r3, [r7, #4] 800e844: 3208 adds r2, #8 800e846: 69b9 ldr r1, [r7, #24] 800e848: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; 800e84c: 687b ldr r3, [r7, #4] 800e84e: 681b ldr r3, [r3, #0] 800e850: 61bb str r3, [r7, #24] temp &= ~(GPIO_MODER_MODER0 << (position * 2)); 800e852: 69fb ldr r3, [r7, #28] 800e854: 005b lsls r3, r3, #1 800e856: 2203 movs r2, #3 800e858: fa02 f303 lsl.w r3, r2, r3 800e85c: 43db mvns r3, r3 800e85e: 69ba ldr r2, [r7, #24] 800e860: 4013 ands r3, r2 800e862: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2)); 800e864: 683b ldr r3, [r7, #0] 800e866: 685b ldr r3, [r3, #4] 800e868: f003 0203 and.w r2, r3, #3 800e86c: 69fb ldr r3, [r7, #28] 800e86e: 005b lsls r3, r3, #1 800e870: fa02 f303 lsl.w r3, r2, r3 800e874: 69ba ldr r2, [r7, #24] 800e876: 4313 orrs r3, r2 800e878: 61bb str r3, [r7, #24] GPIOx->MODER = temp; 800e87a: 687b ldr r3, [r7, #4] 800e87c: 69ba ldr r2, [r7, #24] 800e87e: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if((GPIO_Init->Mode & EXTI_MODE) != 0x00u) 800e880: 683b ldr r3, [r7, #0] 800e882: 685b ldr r3, [r3, #4] 800e884: f403 3340 and.w r3, r3, #196608 ; 0x30000 800e888: 2b00 cmp r3, #0 800e88a: f000 80be beq.w 800ea0a { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); 800e88e: 4a65 ldr r2, [pc, #404] ; (800ea24 ) 800e890: 4b64 ldr r3, [pc, #400] ; (800ea24 ) 800e892: 6c5b ldr r3, [r3, #68] ; 0x44 800e894: f443 4380 orr.w r3, r3, #16384 ; 0x4000 800e898: 6453 str r3, [r2, #68] ; 0x44 800e89a: 4b62 ldr r3, [pc, #392] ; (800ea24 ) 800e89c: 6c5b ldr r3, [r3, #68] ; 0x44 800e89e: f403 4380 and.w r3, r3, #16384 ; 0x4000 800e8a2: 60fb str r3, [r7, #12] 800e8a4: 68fb ldr r3, [r7, #12] temp = SYSCFG->EXTICR[position >> 2]; 800e8a6: 4a60 ldr r2, [pc, #384] ; (800ea28 ) 800e8a8: 69fb ldr r3, [r7, #28] 800e8aa: 089b lsrs r3, r3, #2 800e8ac: 3302 adds r3, #2 800e8ae: f852 3023 ldr.w r3, [r2, r3, lsl #2] 800e8b2: 61bb str r3, [r7, #24] temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03))); 800e8b4: 69fb ldr r3, [r7, #28] 800e8b6: f003 0303 and.w r3, r3, #3 800e8ba: 009b lsls r3, r3, #2 800e8bc: 220f movs r2, #15 800e8be: fa02 f303 lsl.w r3, r2, r3 800e8c2: 43db mvns r3, r3 800e8c4: 69ba ldr r2, [r7, #24] 800e8c6: 4013 ands r3, r2 800e8c8: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); 800e8ca: 687b ldr r3, [r7, #4] 800e8cc: 4a57 ldr r2, [pc, #348] ; (800ea2c ) 800e8ce: 4293 cmp r3, r2 800e8d0: d037 beq.n 800e942 800e8d2: 687b ldr r3, [r7, #4] 800e8d4: 4a56 ldr r2, [pc, #344] ; (800ea30 ) 800e8d6: 4293 cmp r3, r2 800e8d8: d031 beq.n 800e93e 800e8da: 687b ldr r3, [r7, #4] 800e8dc: 4a55 ldr r2, [pc, #340] ; (800ea34 ) 800e8de: 4293 cmp r3, r2 800e8e0: d02b beq.n 800e93a 800e8e2: 687b ldr r3, [r7, #4] 800e8e4: 4a54 ldr r2, [pc, #336] ; (800ea38 ) 800e8e6: 4293 cmp r3, r2 800e8e8: d025 beq.n 800e936 800e8ea: 687b ldr r3, [r7, #4] 800e8ec: 4a53 ldr r2, [pc, #332] ; (800ea3c ) 800e8ee: 4293 cmp r3, r2 800e8f0: d01f beq.n 800e932 800e8f2: 687b ldr r3, [r7, #4] 800e8f4: 4a52 ldr r2, [pc, #328] ; (800ea40 ) 800e8f6: 4293 cmp r3, r2 800e8f8: d019 beq.n 800e92e 800e8fa: 687b ldr r3, [r7, #4] 800e8fc: 4a51 ldr r2, [pc, #324] ; (800ea44 ) 800e8fe: 4293 cmp r3, r2 800e900: d013 beq.n 800e92a 800e902: 687b ldr r3, [r7, #4] 800e904: 4a50 ldr r2, [pc, #320] ; (800ea48 ) 800e906: 4293 cmp r3, r2 800e908: d00d beq.n 800e926 800e90a: 687b ldr r3, [r7, #4] 800e90c: 4a4f ldr r2, [pc, #316] ; (800ea4c ) 800e90e: 4293 cmp r3, r2 800e910: d007 beq.n 800e922 800e912: 687b ldr r3, [r7, #4] 800e914: 4a4e ldr r2, [pc, #312] ; (800ea50 ) 800e916: 4293 cmp r3, r2 800e918: d101 bne.n 800e91e 800e91a: 2309 movs r3, #9 800e91c: e012 b.n 800e944 800e91e: 230a movs r3, #10 800e920: e010 b.n 800e944 800e922: 2308 movs r3, #8 800e924: e00e b.n 800e944 800e926: 2307 movs r3, #7 800e928: e00c b.n 800e944 800e92a: 2306 movs r3, #6 800e92c: e00a b.n 800e944 800e92e: 2305 movs r3, #5 800e930: e008 b.n 800e944 800e932: 2304 movs r3, #4 800e934: e006 b.n 800e944 800e936: 2303 movs r3, #3 800e938: e004 b.n 800e944 800e93a: 2302 movs r3, #2 800e93c: e002 b.n 800e944 800e93e: 2301 movs r3, #1 800e940: e000 b.n 800e944 800e942: 2300 movs r3, #0 800e944: 69fa ldr r2, [r7, #28] 800e946: f002 0203 and.w r2, r2, #3 800e94a: 0092 lsls r2, r2, #2 800e94c: 4093 lsls r3, r2 800e94e: 69ba ldr r2, [r7, #24] 800e950: 4313 orrs r3, r2 800e952: 61bb str r3, [r7, #24] SYSCFG->EXTICR[position >> 2] = temp; 800e954: 4934 ldr r1, [pc, #208] ; (800ea28 ) 800e956: 69fb ldr r3, [r7, #28] 800e958: 089b lsrs r3, r3, #2 800e95a: 3302 adds r3, #2 800e95c: 69ba ldr r2, [r7, #24] 800e95e: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR; 800e962: 4b3c ldr r3, [pc, #240] ; (800ea54 ) 800e964: 689b ldr r3, [r3, #8] 800e966: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 800e968: 693b ldr r3, [r7, #16] 800e96a: 43db mvns r3, r3 800e96c: 69ba ldr r2, [r7, #24] 800e96e: 4013 ands r3, r2 800e970: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u) 800e972: 683b ldr r3, [r7, #0] 800e974: 685b ldr r3, [r3, #4] 800e976: f403 1380 and.w r3, r3, #1048576 ; 0x100000 800e97a: 2b00 cmp r3, #0 800e97c: d003 beq.n 800e986 { temp |= iocurrent; 800e97e: 69ba ldr r2, [r7, #24] 800e980: 693b ldr r3, [r7, #16] 800e982: 4313 orrs r3, r2 800e984: 61bb str r3, [r7, #24] } EXTI->RTSR = temp; 800e986: 4a33 ldr r2, [pc, #204] ; (800ea54 ) 800e988: 69bb ldr r3, [r7, #24] 800e98a: 6093 str r3, [r2, #8] temp = EXTI->FTSR; 800e98c: 4b31 ldr r3, [pc, #196] ; (800ea54 ) 800e98e: 68db ldr r3, [r3, #12] 800e990: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 800e992: 693b ldr r3, [r7, #16] 800e994: 43db mvns r3, r3 800e996: 69ba ldr r2, [r7, #24] 800e998: 4013 ands r3, r2 800e99a: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u) 800e99c: 683b ldr r3, [r7, #0] 800e99e: 685b ldr r3, [r3, #4] 800e9a0: f403 1300 and.w r3, r3, #2097152 ; 0x200000 800e9a4: 2b00 cmp r3, #0 800e9a6: d003 beq.n 800e9b0 { temp |= iocurrent; 800e9a8: 69ba ldr r2, [r7, #24] 800e9aa: 693b ldr r3, [r7, #16] 800e9ac: 4313 orrs r3, r2 800e9ae: 61bb str r3, [r7, #24] } EXTI->FTSR = temp; 800e9b0: 4a28 ldr r2, [pc, #160] ; (800ea54 ) 800e9b2: 69bb ldr r3, [r7, #24] 800e9b4: 60d3 str r3, [r2, #12] temp = EXTI->EMR; 800e9b6: 4b27 ldr r3, [pc, #156] ; (800ea54 ) 800e9b8: 685b ldr r3, [r3, #4] 800e9ba: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 800e9bc: 693b ldr r3, [r7, #16] 800e9be: 43db mvns r3, r3 800e9c0: 69ba ldr r2, [r7, #24] 800e9c2: 4013 ands r3, r2 800e9c4: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & EXTI_EVT) != 0x00u) 800e9c6: 683b ldr r3, [r7, #0] 800e9c8: 685b ldr r3, [r3, #4] 800e9ca: f403 3300 and.w r3, r3, #131072 ; 0x20000 800e9ce: 2b00 cmp r3, #0 800e9d0: d003 beq.n 800e9da { temp |= iocurrent; 800e9d2: 69ba ldr r2, [r7, #24] 800e9d4: 693b ldr r3, [r7, #16] 800e9d6: 4313 orrs r3, r2 800e9d8: 61bb str r3, [r7, #24] } EXTI->EMR = temp; 800e9da: 4a1e ldr r2, [pc, #120] ; (800ea54 ) 800e9dc: 69bb ldr r3, [r7, #24] 800e9de: 6053 str r3, [r2, #4] /* Clear EXTI line configuration */ temp = EXTI->IMR; 800e9e0: 4b1c ldr r3, [pc, #112] ; (800ea54 ) 800e9e2: 681b ldr r3, [r3, #0] 800e9e4: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); 800e9e6: 693b ldr r3, [r7, #16] 800e9e8: 43db mvns r3, r3 800e9ea: 69ba ldr r2, [r7, #24] 800e9ec: 4013 ands r3, r2 800e9ee: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & EXTI_IT) != 0x00u) 800e9f0: 683b ldr r3, [r7, #0] 800e9f2: 685b ldr r3, [r3, #4] 800e9f4: f403 3380 and.w r3, r3, #65536 ; 0x10000 800e9f8: 2b00 cmp r3, #0 800e9fa: d003 beq.n 800ea04 { temp |= iocurrent; 800e9fc: 69ba ldr r2, [r7, #24] 800e9fe: 693b ldr r3, [r7, #16] 800ea00: 4313 orrs r3, r2 800ea02: 61bb str r3, [r7, #24] } EXTI->IMR = temp; 800ea04: 4a13 ldr r2, [pc, #76] ; (800ea54 ) 800ea06: 69bb ldr r3, [r7, #24] 800ea08: 6013 str r3, [r2, #0] for(position = 0; position < GPIO_NUMBER; position++) 800ea0a: 69fb ldr r3, [r7, #28] 800ea0c: 3301 adds r3, #1 800ea0e: 61fb str r3, [r7, #28] 800ea10: 69fb ldr r3, [r7, #28] 800ea12: 2b0f cmp r3, #15 800ea14: f67f ae86 bls.w 800e724 } } } } 800ea18: bf00 nop 800ea1a: 3724 adds r7, #36 ; 0x24 800ea1c: 46bd mov sp, r7 800ea1e: f85d 7b04 ldr.w r7, [sp], #4 800ea22: 4770 bx lr 800ea24: 40023800 .word 0x40023800 800ea28: 40013800 .word 0x40013800 800ea2c: 40020000 .word 0x40020000 800ea30: 40020400 .word 0x40020400 800ea34: 40020800 .word 0x40020800 800ea38: 40020c00 .word 0x40020c00 800ea3c: 40021000 .word 0x40021000 800ea40: 40021400 .word 0x40021400 800ea44: 40021800 .word 0x40021800 800ea48: 40021c00 .word 0x40021c00 800ea4c: 40022000 .word 0x40022000 800ea50: 40022400 .word 0x40022400 800ea54: 40013c00 .word 0x40013c00 0800ea58 : * @param GPIO_Pin specifies the port bit to read. * This parameter can be GPIO_PIN_x where x can be (0..15). * @retval The input port pin value. */ GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { 800ea58: b480 push {r7} 800ea5a: b085 sub sp, #20 800ea5c: af00 add r7, sp, #0 800ea5e: 6078 str r0, [r7, #4] 800ea60: 460b mov r3, r1 800ea62: 807b strh r3, [r7, #2] GPIO_PinState bitstatus; /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET) 800ea64: 687b ldr r3, [r7, #4] 800ea66: 691a ldr r2, [r3, #16] 800ea68: 887b ldrh r3, [r7, #2] 800ea6a: 4013 ands r3, r2 800ea6c: 2b00 cmp r3, #0 800ea6e: d002 beq.n 800ea76 { bitstatus = GPIO_PIN_SET; 800ea70: 2301 movs r3, #1 800ea72: 73fb strb r3, [r7, #15] 800ea74: e001 b.n 800ea7a } else { bitstatus = GPIO_PIN_RESET; 800ea76: 2300 movs r3, #0 800ea78: 73fb strb r3, [r7, #15] } return bitstatus; 800ea7a: 7bfb ldrb r3, [r7, #15] } 800ea7c: 4618 mov r0, r3 800ea7e: 3714 adds r7, #20 800ea80: 46bd mov sp, r7 800ea82: f85d 7b04 ldr.w r7, [sp], #4 800ea86: 4770 bx lr 0800ea88 : * @arg GPIO_PIN_RESET: to clear the port pin * @arg GPIO_PIN_SET: to set the port pin * @retval None */ void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { 800ea88: b480 push {r7} 800ea8a: b083 sub sp, #12 800ea8c: af00 add r7, sp, #0 800ea8e: 6078 str r0, [r7, #4] 800ea90: 460b mov r3, r1 800ea92: 807b strh r3, [r7, #2] 800ea94: 4613 mov r3, r2 800ea96: 707b strb r3, [r7, #1] /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET) 800ea98: 787b ldrb r3, [r7, #1] 800ea9a: 2b00 cmp r3, #0 800ea9c: d003 beq.n 800eaa6 { GPIOx->BSRR = GPIO_Pin; 800ea9e: 887a ldrh r2, [r7, #2] 800eaa0: 687b ldr r3, [r7, #4] 800eaa2: 619a str r2, [r3, #24] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16; } } 800eaa4: e003 b.n 800eaae GPIOx->BSRR = (uint32_t)GPIO_Pin << 16; 800eaa6: 887b ldrh r3, [r7, #2] 800eaa8: 041a lsls r2, r3, #16 800eaaa: 687b ldr r3, [r7, #4] 800eaac: 619a str r2, [r3, #24] } 800eaae: bf00 nop 800eab0: 370c adds r7, #12 800eab2: 46bd mov sp, r7 800eab4: f85d 7b04 ldr.w r7, [sp], #4 800eab8: 4770 bx lr ... 0800eabc : * @brief This function handles EXTI interrupt request. * @param GPIO_Pin Specifies the pins connected EXTI line * @retval None */ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { 800eabc: b580 push {r7, lr} 800eabe: b082 sub sp, #8 800eac0: af00 add r7, sp, #0 800eac2: 4603 mov r3, r0 800eac4: 80fb strh r3, [r7, #6] /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) 800eac6: 4b08 ldr r3, [pc, #32] ; (800eae8 ) 800eac8: 695a ldr r2, [r3, #20] 800eaca: 88fb ldrh r3, [r7, #6] 800eacc: 4013 ands r3, r2 800eace: 2b00 cmp r3, #0 800ead0: d006 beq.n 800eae0 { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); 800ead2: 4a05 ldr r2, [pc, #20] ; (800eae8 ) 800ead4: 88fb ldrh r3, [r7, #6] 800ead6: 6153 str r3, [r2, #20] HAL_GPIO_EXTI_Callback(GPIO_Pin); 800ead8: 88fb ldrh r3, [r7, #6] 800eada: 4618 mov r0, r3 800eadc: f7f6 fd8c bl 80055f8 } } 800eae0: bf00 nop 800eae2: 3708 adds r7, #8 800eae4: 46bd mov sp, r7 800eae6: bd80 pop {r7, pc} 800eae8: 40013c00 .word 0x40013c00 0800eaec : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc) { 800eaec: b580 push {r7, lr} 800eaee: b084 sub sp, #16 800eaf0: af00 add r7, sp, #0 800eaf2: 6078 str r0, [r7, #4] uint32_t tmp, tmp1; /* Check the LTDC peripheral state */ if (hltdc == NULL) 800eaf4: 687b ldr r3, [r7, #4] 800eaf6: 2b00 cmp r3, #0 800eaf8: d101 bne.n 800eafe { return HAL_ERROR; 800eafa: 2301 movs r3, #1 800eafc: e0bf b.n 800ec7e } /* Init the low level hardware */ hltdc->MspInitCallback(hltdc); } #else if (hltdc->State == HAL_LTDC_STATE_RESET) 800eafe: 687b ldr r3, [r7, #4] 800eb00: f893 30a1 ldrb.w r3, [r3, #161] ; 0xa1 800eb04: b2db uxtb r3, r3 800eb06: 2b00 cmp r3, #0 800eb08: d106 bne.n 800eb18 { /* Allocate lock resource and initialize it */ hltdc->Lock = HAL_UNLOCKED; 800eb0a: 687b ldr r3, [r7, #4] 800eb0c: 2200 movs r2, #0 800eb0e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Init the low level hardware */ HAL_LTDC_MspInit(hltdc); 800eb12: 6878 ldr r0, [r7, #4] 800eb14: f7f5 fb8a bl 800422c } #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 800eb18: 687b ldr r3, [r7, #4] 800eb1a: 2202 movs r2, #2 800eb1c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Configure the HS, VS, DE and PC polarity */ hltdc->Instance->GCR &= ~(LTDC_GCR_HSPOL | LTDC_GCR_VSPOL | LTDC_GCR_DEPOL | LTDC_GCR_PCPOL); 800eb20: 687b ldr r3, [r7, #4] 800eb22: 681b ldr r3, [r3, #0] 800eb24: 687a ldr r2, [r7, #4] 800eb26: 6812 ldr r2, [r2, #0] 800eb28: 6992 ldr r2, [r2, #24] 800eb2a: f022 4270 bic.w r2, r2, #4026531840 ; 0xf0000000 800eb2e: 619a str r2, [r3, #24] hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 800eb30: 687b ldr r3, [r7, #4] 800eb32: 681b ldr r3, [r3, #0] 800eb34: 687a ldr r2, [r7, #4] 800eb36: 6812 ldr r2, [r2, #0] 800eb38: 6991 ldr r1, [r2, #24] 800eb3a: 687a ldr r2, [r7, #4] 800eb3c: 6850 ldr r0, [r2, #4] 800eb3e: 687a ldr r2, [r7, #4] 800eb40: 6892 ldr r2, [r2, #8] 800eb42: 4310 orrs r0, r2 hltdc->Init.DEPolarity | hltdc->Init.PCPolarity); 800eb44: 687a ldr r2, [r7, #4] 800eb46: 68d2 ldr r2, [r2, #12] hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 800eb48: 4310 orrs r0, r2 hltdc->Init.DEPolarity | hltdc->Init.PCPolarity); 800eb4a: 687a ldr r2, [r7, #4] 800eb4c: 6912 ldr r2, [r2, #16] 800eb4e: 4302 orrs r2, r0 hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \ 800eb50: 430a orrs r2, r1 800eb52: 619a str r2, [r3, #24] /* Set Synchronization size */ hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW); 800eb54: 687b ldr r3, [r7, #4] 800eb56: 681a ldr r2, [r3, #0] 800eb58: 687b ldr r3, [r7, #4] 800eb5a: 681b ldr r3, [r3, #0] 800eb5c: 6899 ldr r1, [r3, #8] 800eb5e: 4b4a ldr r3, [pc, #296] ; (800ec88 ) 800eb60: 400b ands r3, r1 800eb62: 6093 str r3, [r2, #8] tmp = (hltdc->Init.HorizontalSync << 16U); 800eb64: 687b ldr r3, [r7, #4] 800eb66: 695b ldr r3, [r3, #20] 800eb68: 041b lsls r3, r3, #16 800eb6a: 60fb str r3, [r7, #12] hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync); 800eb6c: 687b ldr r3, [r7, #4] 800eb6e: 681b ldr r3, [r3, #0] 800eb70: 687a ldr r2, [r7, #4] 800eb72: 6812 ldr r2, [r2, #0] 800eb74: 6891 ldr r1, [r2, #8] 800eb76: 687a ldr r2, [r7, #4] 800eb78: 6990 ldr r0, [r2, #24] 800eb7a: 68fa ldr r2, [r7, #12] 800eb7c: 4302 orrs r2, r0 800eb7e: 430a orrs r2, r1 800eb80: 609a str r2, [r3, #8] /* Set Accumulated Back porch */ hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP); 800eb82: 687b ldr r3, [r7, #4] 800eb84: 681a ldr r2, [r3, #0] 800eb86: 687b ldr r3, [r7, #4] 800eb88: 681b ldr r3, [r3, #0] 800eb8a: 68d9 ldr r1, [r3, #12] 800eb8c: 4b3e ldr r3, [pc, #248] ; (800ec88 ) 800eb8e: 400b ands r3, r1 800eb90: 60d3 str r3, [r2, #12] tmp = (hltdc->Init.AccumulatedHBP << 16U); 800eb92: 687b ldr r3, [r7, #4] 800eb94: 69db ldr r3, [r3, #28] 800eb96: 041b lsls r3, r3, #16 800eb98: 60fb str r3, [r7, #12] hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP); 800eb9a: 687b ldr r3, [r7, #4] 800eb9c: 681b ldr r3, [r3, #0] 800eb9e: 687a ldr r2, [r7, #4] 800eba0: 6812 ldr r2, [r2, #0] 800eba2: 68d1 ldr r1, [r2, #12] 800eba4: 687a ldr r2, [r7, #4] 800eba6: 6a10 ldr r0, [r2, #32] 800eba8: 68fa ldr r2, [r7, #12] 800ebaa: 4302 orrs r2, r0 800ebac: 430a orrs r2, r1 800ebae: 60da str r2, [r3, #12] /* Set Accumulated Active Width */ hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW); 800ebb0: 687b ldr r3, [r7, #4] 800ebb2: 681a ldr r2, [r3, #0] 800ebb4: 687b ldr r3, [r7, #4] 800ebb6: 681b ldr r3, [r3, #0] 800ebb8: 6919 ldr r1, [r3, #16] 800ebba: 4b33 ldr r3, [pc, #204] ; (800ec88 ) 800ebbc: 400b ands r3, r1 800ebbe: 6113 str r3, [r2, #16] tmp = (hltdc->Init.AccumulatedActiveW << 16U); 800ebc0: 687b ldr r3, [r7, #4] 800ebc2: 6a5b ldr r3, [r3, #36] ; 0x24 800ebc4: 041b lsls r3, r3, #16 800ebc6: 60fb str r3, [r7, #12] hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH); 800ebc8: 687b ldr r3, [r7, #4] 800ebca: 681b ldr r3, [r3, #0] 800ebcc: 687a ldr r2, [r7, #4] 800ebce: 6812 ldr r2, [r2, #0] 800ebd0: 6911 ldr r1, [r2, #16] 800ebd2: 687a ldr r2, [r7, #4] 800ebd4: 6a90 ldr r0, [r2, #40] ; 0x28 800ebd6: 68fa ldr r2, [r7, #12] 800ebd8: 4302 orrs r2, r0 800ebda: 430a orrs r2, r1 800ebdc: 611a str r2, [r3, #16] /* Set Total Width */ hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW); 800ebde: 687b ldr r3, [r7, #4] 800ebe0: 681a ldr r2, [r3, #0] 800ebe2: 687b ldr r3, [r7, #4] 800ebe4: 681b ldr r3, [r3, #0] 800ebe6: 6959 ldr r1, [r3, #20] 800ebe8: 4b27 ldr r3, [pc, #156] ; (800ec88 ) 800ebea: 400b ands r3, r1 800ebec: 6153 str r3, [r2, #20] tmp = (hltdc->Init.TotalWidth << 16U); 800ebee: 687b ldr r3, [r7, #4] 800ebf0: 6adb ldr r3, [r3, #44] ; 0x2c 800ebf2: 041b lsls r3, r3, #16 800ebf4: 60fb str r3, [r7, #12] hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh); 800ebf6: 687b ldr r3, [r7, #4] 800ebf8: 681b ldr r3, [r3, #0] 800ebfa: 687a ldr r2, [r7, #4] 800ebfc: 6812 ldr r2, [r2, #0] 800ebfe: 6951 ldr r1, [r2, #20] 800ec00: 687a ldr r2, [r7, #4] 800ec02: 6b10 ldr r0, [r2, #48] ; 0x30 800ec04: 68fa ldr r2, [r7, #12] 800ec06: 4302 orrs r2, r0 800ec08: 430a orrs r2, r1 800ec0a: 615a str r2, [r3, #20] /* Set the background color value */ tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U); 800ec0c: 687b ldr r3, [r7, #4] 800ec0e: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 800ec12: 021b lsls r3, r3, #8 800ec14: 60fb str r3, [r7, #12] tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U); 800ec16: 687b ldr r3, [r7, #4] 800ec18: f893 3036 ldrb.w r3, [r3, #54] ; 0x36 800ec1c: 041b lsls r3, r3, #16 800ec1e: 60bb str r3, [r7, #8] hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED); 800ec20: 687b ldr r3, [r7, #4] 800ec22: 681b ldr r3, [r3, #0] 800ec24: 687a ldr r2, [r7, #4] 800ec26: 6812 ldr r2, [r2, #0] 800ec28: 6ad2 ldr r2, [r2, #44] ; 0x2c 800ec2a: f002 427f and.w r2, r2, #4278190080 ; 0xff000000 800ec2e: 62da str r2, [r3, #44] ; 0x2c hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue); 800ec30: 687b ldr r3, [r7, #4] 800ec32: 681b ldr r3, [r3, #0] 800ec34: 687a ldr r2, [r7, #4] 800ec36: 6812 ldr r2, [r2, #0] 800ec38: 6ad1 ldr r1, [r2, #44] ; 0x2c 800ec3a: 68b8 ldr r0, [r7, #8] 800ec3c: 68fa ldr r2, [r7, #12] 800ec3e: 4302 orrs r2, r0 800ec40: 6878 ldr r0, [r7, #4] 800ec42: f890 0034 ldrb.w r0, [r0, #52] ; 0x34 800ec46: 4302 orrs r2, r0 800ec48: 430a orrs r2, r1 800ec4a: 62da str r2, [r3, #44] ; 0x2c /* Enable the Transfer Error and FIFO underrun interrupts */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_TE | LTDC_IT_FU); 800ec4c: 687b ldr r3, [r7, #4] 800ec4e: 681b ldr r3, [r3, #0] 800ec50: 687a ldr r2, [r7, #4] 800ec52: 6812 ldr r2, [r2, #0] 800ec54: 6b52 ldr r2, [r2, #52] ; 0x34 800ec56: f042 0206 orr.w r2, r2, #6 800ec5a: 635a str r2, [r3, #52] ; 0x34 /* Enable LTDC by setting LTDCEN bit */ __HAL_LTDC_ENABLE(hltdc); 800ec5c: 687b ldr r3, [r7, #4] 800ec5e: 681b ldr r3, [r3, #0] 800ec60: 687a ldr r2, [r7, #4] 800ec62: 6812 ldr r2, [r2, #0] 800ec64: 6992 ldr r2, [r2, #24] 800ec66: f042 0201 orr.w r2, r2, #1 800ec6a: 619a str r2, [r3, #24] /* Initialize the error code */ hltdc->ErrorCode = HAL_LTDC_ERROR_NONE; 800ec6c: 687b ldr r3, [r7, #4] 800ec6e: 2200 movs r2, #0 800ec70: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Initialize the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 800ec74: 687b ldr r3, [r7, #4] 800ec76: 2201 movs r2, #1 800ec78: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 return HAL_OK; 800ec7c: 2300 movs r3, #0 } 800ec7e: 4618 mov r0, r3 800ec80: 3710 adds r7, #16 800ec82: 46bd mov sp, r7 800ec84: bd80 pop {r7, pc} 800ec86: bf00 nop 800ec88: f000f800 .word 0xf000f800 0800ec8c : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval HAL status */ void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc) { 800ec8c: b580 push {r7, lr} 800ec8e: b084 sub sp, #16 800ec90: af00 add r7, sp, #0 800ec92: 6078 str r0, [r7, #4] uint32_t isrflags = READ_REG(hltdc->Instance->ISR); 800ec94: 687b ldr r3, [r7, #4] 800ec96: 681b ldr r3, [r3, #0] 800ec98: 6b9b ldr r3, [r3, #56] ; 0x38 800ec9a: 60fb str r3, [r7, #12] uint32_t itsources = READ_REG(hltdc->Instance->IER); 800ec9c: 687b ldr r3, [r7, #4] 800ec9e: 681b ldr r3, [r3, #0] 800eca0: 6b5b ldr r3, [r3, #52] ; 0x34 800eca2: 60bb str r3, [r7, #8] /* Transfer Error Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U)) 800eca4: 68fb ldr r3, [r7, #12] 800eca6: f003 0304 and.w r3, r3, #4 800ecaa: 2b00 cmp r3, #0 800ecac: d023 beq.n 800ecf6 800ecae: 68bb ldr r3, [r7, #8] 800ecb0: f003 0304 and.w r3, r3, #4 800ecb4: 2b00 cmp r3, #0 800ecb6: d01e beq.n 800ecf6 { /* Disable the transfer Error interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE); 800ecb8: 687b ldr r3, [r7, #4] 800ecba: 681b ldr r3, [r3, #0] 800ecbc: 687a ldr r2, [r7, #4] 800ecbe: 6812 ldr r2, [r2, #0] 800ecc0: 6b52 ldr r2, [r2, #52] ; 0x34 800ecc2: f022 0204 bic.w r2, r2, #4 800ecc6: 635a str r2, [r3, #52] ; 0x34 /* Clear the transfer error flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE); 800ecc8: 687b ldr r3, [r7, #4] 800ecca: 681b ldr r3, [r3, #0] 800eccc: 2204 movs r2, #4 800ecce: 63da str r2, [r3, #60] ; 0x3c /* Update error code */ hltdc->ErrorCode |= HAL_LTDC_ERROR_TE; 800ecd0: 687b ldr r3, [r7, #4] 800ecd2: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4 800ecd6: f043 0201 orr.w r2, r3, #1 800ecda: 687b ldr r3, [r7, #4] 800ecdc: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_ERROR; 800ece0: 687b ldr r3, [r7, #4] 800ece2: 2204 movs r2, #4 800ece4: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 800ece8: 687b ldr r3, [r7, #4] 800ecea: 2200 movs r2, #0 800ecec: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ hltdc->ErrorCallback(hltdc); #else /* Call legacy error callback*/ HAL_LTDC_ErrorCallback(hltdc); 800ecf0: 6878 ldr r0, [r7, #4] 800ecf2: f000 f86f bl 800edd4 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* FIFO underrun Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U)) 800ecf6: 68fb ldr r3, [r7, #12] 800ecf8: f003 0302 and.w r3, r3, #2 800ecfc: 2b00 cmp r3, #0 800ecfe: d023 beq.n 800ed48 800ed00: 68bb ldr r3, [r7, #8] 800ed02: f003 0302 and.w r3, r3, #2 800ed06: 2b00 cmp r3, #0 800ed08: d01e beq.n 800ed48 { /* Disable the FIFO underrun interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU); 800ed0a: 687b ldr r3, [r7, #4] 800ed0c: 681b ldr r3, [r3, #0] 800ed0e: 687a ldr r2, [r7, #4] 800ed10: 6812 ldr r2, [r2, #0] 800ed12: 6b52 ldr r2, [r2, #52] ; 0x34 800ed14: f022 0202 bic.w r2, r2, #2 800ed18: 635a str r2, [r3, #52] ; 0x34 /* Clear the FIFO underrun flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU); 800ed1a: 687b ldr r3, [r7, #4] 800ed1c: 681b ldr r3, [r3, #0] 800ed1e: 2202 movs r2, #2 800ed20: 63da str r2, [r3, #60] ; 0x3c /* Update error code */ hltdc->ErrorCode |= HAL_LTDC_ERROR_FU; 800ed22: 687b ldr r3, [r7, #4] 800ed24: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4 800ed28: f043 0202 orr.w r2, r3, #2 800ed2c: 687b ldr r3, [r7, #4] 800ed2e: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_ERROR; 800ed32: 687b ldr r3, [r7, #4] 800ed34: 2204 movs r2, #4 800ed36: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 800ed3a: 687b ldr r3, [r7, #4] 800ed3c: 2200 movs r2, #0 800ed3e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ hltdc->ErrorCallback(hltdc); #else /* Call legacy error callback*/ HAL_LTDC_ErrorCallback(hltdc); 800ed42: 6878 ldr r0, [r7, #4] 800ed44: f000 f846 bl 800edd4 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* Line Interrupt management ************************************************/ if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U)) 800ed48: 68fb ldr r3, [r7, #12] 800ed4a: f003 0301 and.w r3, r3, #1 800ed4e: 2b00 cmp r3, #0 800ed50: d01b beq.n 800ed8a 800ed52: 68bb ldr r3, [r7, #8] 800ed54: f003 0301 and.w r3, r3, #1 800ed58: 2b00 cmp r3, #0 800ed5a: d016 beq.n 800ed8a { /* Disable the Line interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI); 800ed5c: 687b ldr r3, [r7, #4] 800ed5e: 681b ldr r3, [r3, #0] 800ed60: 687a ldr r2, [r7, #4] 800ed62: 6812 ldr r2, [r2, #0] 800ed64: 6b52 ldr r2, [r2, #52] ; 0x34 800ed66: f022 0201 bic.w r2, r2, #1 800ed6a: 635a str r2, [r3, #52] ; 0x34 /* Clear the Line interrupt flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI); 800ed6c: 687b ldr r3, [r7, #4] 800ed6e: 681b ldr r3, [r3, #0] 800ed70: 2201 movs r2, #1 800ed72: 63da str r2, [r3, #60] ; 0x3c /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_READY; 800ed74: 687b ldr r3, [r7, #4] 800ed76: 2201 movs r2, #1 800ed78: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 800ed7c: 687b ldr r3, [r7, #4] 800ed7e: 2200 movs r2, #0 800ed80: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered Line Event callback */ hltdc->LineEventCallback(hltdc); #else /*Call Legacy Line Event callback */ HAL_LTDC_LineEventCallback(hltdc); 800ed84: 6878 ldr r0, [r7, #4] 800ed86: f7f6 fa6b bl 8005260 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } /* Register reload Interrupt management ***************************************/ if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U)) 800ed8a: 68fb ldr r3, [r7, #12] 800ed8c: f003 0308 and.w r3, r3, #8 800ed90: 2b00 cmp r3, #0 800ed92: d01b beq.n 800edcc 800ed94: 68bb ldr r3, [r7, #8] 800ed96: f003 0308 and.w r3, r3, #8 800ed9a: 2b00 cmp r3, #0 800ed9c: d016 beq.n 800edcc { /* Disable the register reload interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR); 800ed9e: 687b ldr r3, [r7, #4] 800eda0: 681b ldr r3, [r3, #0] 800eda2: 687a ldr r2, [r7, #4] 800eda4: 6812 ldr r2, [r2, #0] 800eda6: 6b52 ldr r2, [r2, #52] ; 0x34 800eda8: f022 0208 bic.w r2, r2, #8 800edac: 635a str r2, [r3, #52] ; 0x34 /* Clear the register reload flag */ __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR); 800edae: 687b ldr r3, [r7, #4] 800edb0: 681b ldr r3, [r3, #0] 800edb2: 2208 movs r2, #8 800edb4: 63da str r2, [r3, #60] ; 0x3c /* Change LTDC state */ hltdc->State = HAL_LTDC_STATE_READY; 800edb6: 687b ldr r3, [r7, #4] 800edb8: 2201 movs r2, #1 800edba: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 800edbe: 687b ldr r3, [r7, #4] 800edc0: 2200 movs r2, #0 800edc2: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1) /*Call registered reload Event callback */ hltdc->ReloadEventCallback(hltdc); #else /*Call Legacy Reload Event callback */ HAL_LTDC_ReloadEventCallback(hltdc); 800edc6: 6878 ldr r0, [r7, #4] 800edc8: f000 f80e bl 800ede8 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */ } } 800edcc: bf00 nop 800edce: 3710 adds r7, #16 800edd0: 46bd mov sp, r7 800edd2: bd80 pop {r7, pc} 0800edd4 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval None */ __weak void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc) { 800edd4: b480 push {r7} 800edd6: b083 sub sp, #12 800edd8: af00 add r7, sp, #0 800edda: 6078 str r0, [r7, #4] UNUSED(hltdc); /* NOTE : This function should not be modified, when the callback is needed, the HAL_LTDC_ErrorCallback could be implemented in the user file */ } 800eddc: bf00 nop 800edde: 370c adds r7, #12 800ede0: 46bd mov sp, r7 800ede2: f85d 7b04 ldr.w r7, [sp], #4 800ede6: 4770 bx lr 0800ede8 : * @param hltdc pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval None */ __weak void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc) { 800ede8: b480 push {r7} 800edea: b083 sub sp, #12 800edec: af00 add r7, sp, #0 800edee: 6078 str r0, [r7, #4] UNUSED(hltdc); /* NOTE : This function should not be modified, when the callback is needed, the HAL_LTDC_ReloadEvenCallback could be implemented in the user file */ } 800edf0: bf00 nop 800edf2: 370c adds r7, #12 800edf4: 46bd mov sp, r7 800edf6: f85d 7b04 ldr.w r7, [sp], #4 800edfa: 4770 bx lr 0800edfc : * This parameter can be one of the following values: * LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1) * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx) { 800edfc: b5b0 push {r4, r5, r7, lr} 800edfe: b084 sub sp, #16 800ee00: af00 add r7, sp, #0 800ee02: 60f8 str r0, [r7, #12] 800ee04: 60b9 str r1, [r7, #8] 800ee06: 607a str r2, [r7, #4] assert_param(IS_LTDC_BLENDING_FACTOR2(pLayerCfg->BlendingFactor2)); assert_param(IS_LTDC_CFBLL(pLayerCfg->ImageWidth)); assert_param(IS_LTDC_CFBLNBR(pLayerCfg->ImageHeight)); /* Process locked */ __HAL_LOCK(hltdc); 800ee08: 68fb ldr r3, [r7, #12] 800ee0a: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 800ee0e: 2b01 cmp r3, #1 800ee10: d101 bne.n 800ee16 800ee12: 2302 movs r3, #2 800ee14: e02c b.n 800ee70 800ee16: 68fb ldr r3, [r7, #12] 800ee18: 2201 movs r2, #1 800ee1a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 800ee1e: 68fb ldr r3, [r7, #12] 800ee20: 2202 movs r2, #2 800ee22: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Copy new layer configuration into handle structure */ hltdc->LayerCfg[LayerIdx] = *pLayerCfg; 800ee26: 68fa ldr r2, [r7, #12] 800ee28: 687b ldr r3, [r7, #4] 800ee2a: 2134 movs r1, #52 ; 0x34 800ee2c: fb01 f303 mul.w r3, r1, r3 800ee30: 4413 add r3, r2 800ee32: f103 0238 add.w r2, r3, #56 ; 0x38 800ee36: 68bb ldr r3, [r7, #8] 800ee38: 4614 mov r4, r2 800ee3a: 461d mov r5, r3 800ee3c: cd0f ldmia r5!, {r0, r1, r2, r3} 800ee3e: c40f stmia r4!, {r0, r1, r2, r3} 800ee40: cd0f ldmia r5!, {r0, r1, r2, r3} 800ee42: c40f stmia r4!, {r0, r1, r2, r3} 800ee44: cd0f ldmia r5!, {r0, r1, r2, r3} 800ee46: c40f stmia r4!, {r0, r1, r2, r3} 800ee48: 682b ldr r3, [r5, #0] 800ee4a: 6023 str r3, [r4, #0] /* Configure the LTDC Layer */ LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx); 800ee4c: 687a ldr r2, [r7, #4] 800ee4e: 68b9 ldr r1, [r7, #8] 800ee50: 68f8 ldr r0, [r7, #12] 800ee52: f000 f879 bl 800ef48 /* Set the Immediate Reload type */ hltdc->Instance->SRCR = LTDC_SRCR_IMR; 800ee56: 68fb ldr r3, [r7, #12] 800ee58: 681b ldr r3, [r3, #0] 800ee5a: 2201 movs r2, #1 800ee5c: 625a str r2, [r3, #36] ; 0x24 /* Initialize the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 800ee5e: 68fb ldr r3, [r7, #12] 800ee60: 2201 movs r2, #1 800ee62: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 800ee66: 68fb ldr r3, [r7, #12] 800ee68: 2200 movs r2, #0 800ee6a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 800ee6e: 2300 movs r3, #0 } 800ee70: 4618 mov r0, r3 800ee72: 3710 adds r7, #16 800ee74: 46bd mov sp, r7 800ee76: bdb0 pop {r4, r5, r7, pc} 0800ee78 : * @param Line Line Interrupt Position. * @note User application may resort to HAL_LTDC_LineEventCallback() at line interrupt generation. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line) { 800ee78: b480 push {r7} 800ee7a: b083 sub sp, #12 800ee7c: af00 add r7, sp, #0 800ee7e: 6078 str r0, [r7, #4] 800ee80: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_LTDC_LIPOS(Line)); /* Process locked */ __HAL_LOCK(hltdc); 800ee82: 687b ldr r3, [r7, #4] 800ee84: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 800ee88: 2b01 cmp r3, #1 800ee8a: d101 bne.n 800ee90 800ee8c: 2302 movs r3, #2 800ee8e: e023 b.n 800eed8 800ee90: 687b ldr r3, [r7, #4] 800ee92: 2201 movs r2, #1 800ee94: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 800ee98: 687b ldr r3, [r7, #4] 800ee9a: 2202 movs r2, #2 800ee9c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Disable the Line interrupt */ __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI); 800eea0: 687b ldr r3, [r7, #4] 800eea2: 681b ldr r3, [r3, #0] 800eea4: 687a ldr r2, [r7, #4] 800eea6: 6812 ldr r2, [r2, #0] 800eea8: 6b52 ldr r2, [r2, #52] ; 0x34 800eeaa: f022 0201 bic.w r2, r2, #1 800eeae: 635a str r2, [r3, #52] ; 0x34 /* Set the Line Interrupt position */ LTDC->LIPCR = (uint32_t)Line; 800eeb0: 4a0c ldr r2, [pc, #48] ; (800eee4 ) 800eeb2: 683b ldr r3, [r7, #0] 800eeb4: 6413 str r3, [r2, #64] ; 0x40 /* Enable the Line interrupt */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI); 800eeb6: 687b ldr r3, [r7, #4] 800eeb8: 681b ldr r3, [r3, #0] 800eeba: 687a ldr r2, [r7, #4] 800eebc: 6812 ldr r2, [r2, #0] 800eebe: 6b52 ldr r2, [r2, #52] ; 0x34 800eec0: f042 0201 orr.w r2, r2, #1 800eec4: 635a str r2, [r3, #52] ; 0x34 /* Change the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 800eec6: 687b ldr r3, [r7, #4] 800eec8: 2201 movs r2, #1 800eeca: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 800eece: 687b ldr r3, [r7, #4] 800eed0: 2200 movs r2, #0 800eed2: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 800eed6: 2300 movs r3, #0 } 800eed8: 4618 mov r0, r3 800eeda: 370c adds r7, #12 800eedc: 46bd mov sp, r7 800eede: f85d 7b04 ldr.w r7, [sp], #4 800eee2: 4770 bx lr 800eee4: 40016800 .word 0x40016800 0800eee8 : * LTDC_RELOAD_VERTICAL_BLANKING : Reload in the next Vertical Blanking * @note User application may resort to HAL_LTDC_ReloadEventCallback() at reload interrupt generation. * @retval HAL status */ HAL_StatusTypeDef HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType) { 800eee8: b480 push {r7} 800eeea: b083 sub sp, #12 800eeec: af00 add r7, sp, #0 800eeee: 6078 str r0, [r7, #4] 800eef0: 6039 str r1, [r7, #0] /* Check the parameters */ assert_param(IS_LTDC_RELOAD(ReloadType)); /* Process locked */ __HAL_LOCK(hltdc); 800eef2: 687b ldr r3, [r7, #4] 800eef4: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0 800eef8: 2b01 cmp r3, #1 800eefa: d101 bne.n 800ef00 800eefc: 2302 movs r3, #2 800eefe: e01c b.n 800ef3a 800ef00: 687b ldr r3, [r7, #4] 800ef02: 2201 movs r2, #1 800ef04: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 /* Change LTDC peripheral state */ hltdc->State = HAL_LTDC_STATE_BUSY; 800ef08: 687b ldr r3, [r7, #4] 800ef0a: 2202 movs r2, #2 800ef0c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Enable the Reload interrupt */ __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR); 800ef10: 687b ldr r3, [r7, #4] 800ef12: 681b ldr r3, [r3, #0] 800ef14: 687a ldr r2, [r7, #4] 800ef16: 6812 ldr r2, [r2, #0] 800ef18: 6b52 ldr r2, [r2, #52] ; 0x34 800ef1a: f042 0208 orr.w r2, r2, #8 800ef1e: 635a str r2, [r3, #52] ; 0x34 /* Apply Reload type */ hltdc->Instance->SRCR = ReloadType; 800ef20: 687b ldr r3, [r7, #4] 800ef22: 681b ldr r3, [r3, #0] 800ef24: 683a ldr r2, [r7, #0] 800ef26: 625a str r2, [r3, #36] ; 0x24 /* Change the LTDC state*/ hltdc->State = HAL_LTDC_STATE_READY; 800ef28: 687b ldr r3, [r7, #4] 800ef2a: 2201 movs r2, #1 800ef2c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1 /* Process unlocked */ __HAL_UNLOCK(hltdc); 800ef30: 687b ldr r3, [r7, #4] 800ef32: 2200 movs r2, #0 800ef34: f883 20a0 strb.w r2, [r3, #160] ; 0xa0 return HAL_OK; 800ef38: 2300 movs r3, #0 } 800ef3a: 4618 mov r0, r3 800ef3c: 370c adds r7, #12 800ef3e: 46bd mov sp, r7 800ef40: f85d 7b04 ldr.w r7, [sp], #4 800ef44: 4770 bx lr ... 0800ef48 : * @param LayerIdx LTDC Layer index. * This parameter can be one of the following values: LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1) * @retval None */ static void LTDC_SetConfig(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx) { 800ef48: b480 push {r7} 800ef4a: b089 sub sp, #36 ; 0x24 800ef4c: af00 add r7, sp, #0 800ef4e: 60f8 str r0, [r7, #12] 800ef50: 60b9 str r1, [r7, #8] 800ef52: 607a str r2, [r7, #4] uint32_t tmp; uint32_t tmp1; uint32_t tmp2; /* Configure the horizontal start and stop position */ tmp = ((pLayerCfg->WindowX1 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U)) << 16U); 800ef54: 68bb ldr r3, [r7, #8] 800ef56: 685a ldr r2, [r3, #4] 800ef58: 68fb ldr r3, [r7, #12] 800ef5a: 681b ldr r3, [r3, #0] 800ef5c: 68db ldr r3, [r3, #12] 800ef5e: 0c1b lsrs r3, r3, #16 800ef60: f3c3 030b ubfx r3, r3, #0, #12 800ef64: 4413 add r3, r2 800ef66: 041b lsls r3, r3, #16 800ef68: 61fb str r3, [r7, #28] LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS); 800ef6a: 68fb ldr r3, [r7, #12] 800ef6c: 681b ldr r3, [r3, #0] 800ef6e: 461a mov r2, r3 800ef70: 687b ldr r3, [r7, #4] 800ef72: 01db lsls r3, r3, #7 800ef74: 4413 add r3, r2 800ef76: 3384 adds r3, #132 ; 0x84 800ef78: 461a mov r2, r3 800ef7a: 68fb ldr r3, [r7, #12] 800ef7c: 681b ldr r3, [r3, #0] 800ef7e: 4619 mov r1, r3 800ef80: 687b ldr r3, [r7, #4] 800ef82: 01db lsls r3, r3, #7 800ef84: 440b add r3, r1 800ef86: 3384 adds r3, #132 ; 0x84 800ef88: 685b ldr r3, [r3, #4] 800ef8a: f403 4370 and.w r3, r3, #61440 ; 0xf000 800ef8e: 6053 str r3, [r2, #4] LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp); 800ef90: 68fb ldr r3, [r7, #12] 800ef92: 681b ldr r3, [r3, #0] 800ef94: 461a mov r2, r3 800ef96: 687b ldr r3, [r7, #4] 800ef98: 01db lsls r3, r3, #7 800ef9a: 4413 add r3, r2 800ef9c: 3384 adds r3, #132 ; 0x84 800ef9e: 4619 mov r1, r3 800efa0: 68bb ldr r3, [r7, #8] 800efa2: 681a ldr r2, [r3, #0] 800efa4: 68fb ldr r3, [r7, #12] 800efa6: 681b ldr r3, [r3, #0] 800efa8: 68db ldr r3, [r3, #12] 800efaa: 0c1b lsrs r3, r3, #16 800efac: f3c3 030b ubfx r3, r3, #0, #12 800efb0: 4413 add r3, r2 800efb2: 1c5a adds r2, r3, #1 800efb4: 69fb ldr r3, [r7, #28] 800efb6: 4313 orrs r3, r2 800efb8: 604b str r3, [r1, #4] /* Configure the vertical start and stop position */ tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U); 800efba: 68bb ldr r3, [r7, #8] 800efbc: 68da ldr r2, [r3, #12] 800efbe: 68fb ldr r3, [r7, #12] 800efc0: 681b ldr r3, [r3, #0] 800efc2: 68db ldr r3, [r3, #12] 800efc4: f3c3 030a ubfx r3, r3, #0, #11 800efc8: 4413 add r3, r2 800efca: 041b lsls r3, r3, #16 800efcc: 61fb str r3, [r7, #28] LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS); 800efce: 68fb ldr r3, [r7, #12] 800efd0: 681b ldr r3, [r3, #0] 800efd2: 461a mov r2, r3 800efd4: 687b ldr r3, [r7, #4] 800efd6: 01db lsls r3, r3, #7 800efd8: 4413 add r3, r2 800efda: 3384 adds r3, #132 ; 0x84 800efdc: 461a mov r2, r3 800efde: 68fb ldr r3, [r7, #12] 800efe0: 681b ldr r3, [r3, #0] 800efe2: 4619 mov r1, r3 800efe4: 687b ldr r3, [r7, #4] 800efe6: 01db lsls r3, r3, #7 800efe8: 440b add r3, r1 800efea: 3384 adds r3, #132 ; 0x84 800efec: 689b ldr r3, [r3, #8] 800efee: f403 4370 and.w r3, r3, #61440 ; 0xf000 800eff2: 6093 str r3, [r2, #8] LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp); 800eff4: 68fb ldr r3, [r7, #12] 800eff6: 681b ldr r3, [r3, #0] 800eff8: 461a mov r2, r3 800effa: 687b ldr r3, [r7, #4] 800effc: 01db lsls r3, r3, #7 800effe: 4413 add r3, r2 800f000: 3384 adds r3, #132 ; 0x84 800f002: 4619 mov r1, r3 800f004: 68bb ldr r3, [r7, #8] 800f006: 689a ldr r2, [r3, #8] 800f008: 68fb ldr r3, [r7, #12] 800f00a: 681b ldr r3, [r3, #0] 800f00c: 68db ldr r3, [r3, #12] 800f00e: f3c3 030a ubfx r3, r3, #0, #11 800f012: 4413 add r3, r2 800f014: 1c5a adds r2, r3, #1 800f016: 69fb ldr r3, [r7, #28] 800f018: 4313 orrs r3, r2 800f01a: 608b str r3, [r1, #8] /* Specifies the pixel format */ LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF); 800f01c: 68fb ldr r3, [r7, #12] 800f01e: 681b ldr r3, [r3, #0] 800f020: 461a mov r2, r3 800f022: 687b ldr r3, [r7, #4] 800f024: 01db lsls r3, r3, #7 800f026: 4413 add r3, r2 800f028: 3384 adds r3, #132 ; 0x84 800f02a: 461a mov r2, r3 800f02c: 68fb ldr r3, [r7, #12] 800f02e: 681b ldr r3, [r3, #0] 800f030: 4619 mov r1, r3 800f032: 687b ldr r3, [r7, #4] 800f034: 01db lsls r3, r3, #7 800f036: 440b add r3, r1 800f038: 3384 adds r3, #132 ; 0x84 800f03a: 691b ldr r3, [r3, #16] 800f03c: f023 0307 bic.w r3, r3, #7 800f040: 6113 str r3, [r2, #16] LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->PixelFormat); 800f042: 68fb ldr r3, [r7, #12] 800f044: 681b ldr r3, [r3, #0] 800f046: 461a mov r2, r3 800f048: 687b ldr r3, [r7, #4] 800f04a: 01db lsls r3, r3, #7 800f04c: 4413 add r3, r2 800f04e: 3384 adds r3, #132 ; 0x84 800f050: 461a mov r2, r3 800f052: 68bb ldr r3, [r7, #8] 800f054: 691b ldr r3, [r3, #16] 800f056: 6113 str r3, [r2, #16] /* Configure the default color values */ tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U); 800f058: 68bb ldr r3, [r7, #8] 800f05a: f893 3031 ldrb.w r3, [r3, #49] ; 0x31 800f05e: 021b lsls r3, r3, #8 800f060: 61fb str r3, [r7, #28] tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U); 800f062: 68bb ldr r3, [r7, #8] 800f064: f893 3032 ldrb.w r3, [r3, #50] ; 0x32 800f068: 041b lsls r3, r3, #16 800f06a: 61bb str r3, [r7, #24] tmp2 = (pLayerCfg->Alpha0 << 24U); 800f06c: 68bb ldr r3, [r7, #8] 800f06e: 699b ldr r3, [r3, #24] 800f070: 061b lsls r3, r3, #24 800f072: 617b str r3, [r7, #20] LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA); 800f074: 68fb ldr r3, [r7, #12] 800f076: 681b ldr r3, [r3, #0] 800f078: 461a mov r2, r3 800f07a: 687b ldr r3, [r7, #4] 800f07c: 01db lsls r3, r3, #7 800f07e: 4413 add r3, r2 800f080: 3384 adds r3, #132 ; 0x84 800f082: 699b ldr r3, [r3, #24] 800f084: 68fb ldr r3, [r7, #12] 800f086: 681b ldr r3, [r3, #0] 800f088: 461a mov r2, r3 800f08a: 687b ldr r3, [r7, #4] 800f08c: 01db lsls r3, r3, #7 800f08e: 4413 add r3, r2 800f090: 3384 adds r3, #132 ; 0x84 800f092: 461a mov r2, r3 800f094: 2300 movs r3, #0 800f096: 6193 str r3, [r2, #24] LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2); 800f098: 68fb ldr r3, [r7, #12] 800f09a: 681b ldr r3, [r3, #0] 800f09c: 461a mov r2, r3 800f09e: 687b ldr r3, [r7, #4] 800f0a0: 01db lsls r3, r3, #7 800f0a2: 4413 add r3, r2 800f0a4: 3384 adds r3, #132 ; 0x84 800f0a6: 4619 mov r1, r3 800f0a8: 68bb ldr r3, [r7, #8] 800f0aa: f893 3030 ldrb.w r3, [r3, #48] ; 0x30 800f0ae: 461a mov r2, r3 800f0b0: 69fb ldr r3, [r7, #28] 800f0b2: 431a orrs r2, r3 800f0b4: 69bb ldr r3, [r7, #24] 800f0b6: 431a orrs r2, r3 800f0b8: 697b ldr r3, [r7, #20] 800f0ba: 4313 orrs r3, r2 800f0bc: 618b str r3, [r1, #24] /* Specifies the constant alpha value */ LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA); 800f0be: 68fb ldr r3, [r7, #12] 800f0c0: 681b ldr r3, [r3, #0] 800f0c2: 461a mov r2, r3 800f0c4: 687b ldr r3, [r7, #4] 800f0c6: 01db lsls r3, r3, #7 800f0c8: 4413 add r3, r2 800f0ca: 3384 adds r3, #132 ; 0x84 800f0cc: 461a mov r2, r3 800f0ce: 68fb ldr r3, [r7, #12] 800f0d0: 681b ldr r3, [r3, #0] 800f0d2: 4619 mov r1, r3 800f0d4: 687b ldr r3, [r7, #4] 800f0d6: 01db lsls r3, r3, #7 800f0d8: 440b add r3, r1 800f0da: 3384 adds r3, #132 ; 0x84 800f0dc: 695b ldr r3, [r3, #20] 800f0de: f023 03ff bic.w r3, r3, #255 ; 0xff 800f0e2: 6153 str r3, [r2, #20] LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->Alpha); 800f0e4: 68fb ldr r3, [r7, #12] 800f0e6: 681b ldr r3, [r3, #0] 800f0e8: 461a mov r2, r3 800f0ea: 687b ldr r3, [r7, #4] 800f0ec: 01db lsls r3, r3, #7 800f0ee: 4413 add r3, r2 800f0f0: 3384 adds r3, #132 ; 0x84 800f0f2: 461a mov r2, r3 800f0f4: 68bb ldr r3, [r7, #8] 800f0f6: 695b ldr r3, [r3, #20] 800f0f8: 6153 str r3, [r2, #20] /* Specifies the blending factors */ LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1); 800f0fa: 68fb ldr r3, [r7, #12] 800f0fc: 681b ldr r3, [r3, #0] 800f0fe: 461a mov r2, r3 800f100: 687b ldr r3, [r7, #4] 800f102: 01db lsls r3, r3, #7 800f104: 4413 add r3, r2 800f106: 3384 adds r3, #132 ; 0x84 800f108: 4619 mov r1, r3 800f10a: 68fb ldr r3, [r7, #12] 800f10c: 681b ldr r3, [r3, #0] 800f10e: 461a mov r2, r3 800f110: 687b ldr r3, [r7, #4] 800f112: 01db lsls r3, r3, #7 800f114: 4413 add r3, r2 800f116: 3384 adds r3, #132 ; 0x84 800f118: 69da ldr r2, [r3, #28] 800f11a: 4b5a ldr r3, [pc, #360] ; (800f284 ) 800f11c: 4013 ands r3, r2 800f11e: 61cb str r3, [r1, #28] LTDC_LAYER(hltdc, LayerIdx)->BFCR = (pLayerCfg->BlendingFactor1 | pLayerCfg->BlendingFactor2); 800f120: 68fb ldr r3, [r7, #12] 800f122: 681b ldr r3, [r3, #0] 800f124: 461a mov r2, r3 800f126: 687b ldr r3, [r7, #4] 800f128: 01db lsls r3, r3, #7 800f12a: 4413 add r3, r2 800f12c: 3384 adds r3, #132 ; 0x84 800f12e: 4619 mov r1, r3 800f130: 68bb ldr r3, [r7, #8] 800f132: 69da ldr r2, [r3, #28] 800f134: 68bb ldr r3, [r7, #8] 800f136: 6a1b ldr r3, [r3, #32] 800f138: 4313 orrs r3, r2 800f13a: 61cb str r3, [r1, #28] /* Configure the color frame buffer start address */ LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD); 800f13c: 68fb ldr r3, [r7, #12] 800f13e: 681b ldr r3, [r3, #0] 800f140: 461a mov r2, r3 800f142: 687b ldr r3, [r7, #4] 800f144: 01db lsls r3, r3, #7 800f146: 4413 add r3, r2 800f148: 3384 adds r3, #132 ; 0x84 800f14a: 6a9b ldr r3, [r3, #40] ; 0x28 800f14c: 68fb ldr r3, [r7, #12] 800f14e: 681b ldr r3, [r3, #0] 800f150: 461a mov r2, r3 800f152: 687b ldr r3, [r7, #4] 800f154: 01db lsls r3, r3, #7 800f156: 4413 add r3, r2 800f158: 3384 adds r3, #132 ; 0x84 800f15a: 461a mov r2, r3 800f15c: 2300 movs r3, #0 800f15e: 6293 str r3, [r2, #40] ; 0x28 LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->FBStartAdress); 800f160: 68fb ldr r3, [r7, #12] 800f162: 681b ldr r3, [r3, #0] 800f164: 461a mov r2, r3 800f166: 687b ldr r3, [r7, #4] 800f168: 01db lsls r3, r3, #7 800f16a: 4413 add r3, r2 800f16c: 3384 adds r3, #132 ; 0x84 800f16e: 461a mov r2, r3 800f170: 68bb ldr r3, [r7, #8] 800f172: 6a5b ldr r3, [r3, #36] ; 0x24 800f174: 6293 str r3, [r2, #40] ; 0x28 if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888) 800f176: 68bb ldr r3, [r7, #8] 800f178: 691b ldr r3, [r3, #16] 800f17a: 2b00 cmp r3, #0 800f17c: d102 bne.n 800f184 { tmp = 4U; 800f17e: 2304 movs r3, #4 800f180: 61fb str r3, [r7, #28] 800f182: e01b b.n 800f1bc } else if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB888) 800f184: 68bb ldr r3, [r7, #8] 800f186: 691b ldr r3, [r3, #16] 800f188: 2b01 cmp r3, #1 800f18a: d102 bne.n 800f192 { tmp = 3U; 800f18c: 2303 movs r3, #3 800f18e: 61fb str r3, [r7, #28] 800f190: e014 b.n 800f1bc } else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \ 800f192: 68bb ldr r3, [r7, #8] 800f194: 691b ldr r3, [r3, #16] 800f196: 2b04 cmp r3, #4 800f198: d00b beq.n 800f1b2 (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \ 800f19a: 68bb ldr r3, [r7, #8] 800f19c: 691b ldr r3, [r3, #16] else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \ 800f19e: 2b02 cmp r3, #2 800f1a0: d007 beq.n 800f1b2 (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \ 800f1a2: 68bb ldr r3, [r7, #8] 800f1a4: 691b ldr r3, [r3, #16] (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \ 800f1a6: 2b03 cmp r3, #3 800f1a8: d003 beq.n 800f1b2 (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_AL88)) 800f1aa: 68bb ldr r3, [r7, #8] 800f1ac: 691b ldr r3, [r3, #16] (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \ 800f1ae: 2b07 cmp r3, #7 800f1b0: d102 bne.n 800f1b8 { tmp = 2U; 800f1b2: 2302 movs r3, #2 800f1b4: 61fb str r3, [r7, #28] 800f1b6: e001 b.n 800f1bc } else { tmp = 1U; 800f1b8: 2301 movs r3, #1 800f1ba: 61fb str r3, [r7, #28] } /* Configure the color frame buffer pitch in byte */ LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP); 800f1bc: 68fb ldr r3, [r7, #12] 800f1be: 681b ldr r3, [r3, #0] 800f1c0: 461a mov r2, r3 800f1c2: 687b ldr r3, [r7, #4] 800f1c4: 01db lsls r3, r3, #7 800f1c6: 4413 add r3, r2 800f1c8: 3384 adds r3, #132 ; 0x84 800f1ca: 461a mov r2, r3 800f1cc: 68fb ldr r3, [r7, #12] 800f1ce: 681b ldr r3, [r3, #0] 800f1d0: 4619 mov r1, r3 800f1d2: 687b ldr r3, [r7, #4] 800f1d4: 01db lsls r3, r3, #7 800f1d6: 440b add r3, r1 800f1d8: 3384 adds r3, #132 ; 0x84 800f1da: 6adb ldr r3, [r3, #44] ; 0x2c 800f1dc: f003 23e0 and.w r3, r3, #3758153728 ; 0xe000e000 800f1e0: 62d3 str r3, [r2, #44] ; 0x2c LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp) + 3U)); 800f1e2: 68fb ldr r3, [r7, #12] 800f1e4: 681b ldr r3, [r3, #0] 800f1e6: 461a mov r2, r3 800f1e8: 687b ldr r3, [r7, #4] 800f1ea: 01db lsls r3, r3, #7 800f1ec: 4413 add r3, r2 800f1ee: 3384 adds r3, #132 ; 0x84 800f1f0: 4618 mov r0, r3 800f1f2: 68bb ldr r3, [r7, #8] 800f1f4: 6a9b ldr r3, [r3, #40] ; 0x28 800f1f6: 69fa ldr r2, [r7, #28] 800f1f8: fb02 f303 mul.w r3, r2, r3 800f1fc: 041a lsls r2, r3, #16 800f1fe: 68bb ldr r3, [r7, #8] 800f200: 6859 ldr r1, [r3, #4] 800f202: 68bb ldr r3, [r7, #8] 800f204: 681b ldr r3, [r3, #0] 800f206: 1acb subs r3, r1, r3 800f208: 69f9 ldr r1, [r7, #28] 800f20a: fb01 f303 mul.w r3, r1, r3 800f20e: 3303 adds r3, #3 800f210: 4313 orrs r3, r2 800f212: 62c3 str r3, [r0, #44] ; 0x2c /* Configure the frame buffer line number */ LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR); 800f214: 68fb ldr r3, [r7, #12] 800f216: 681b ldr r3, [r3, #0] 800f218: 461a mov r2, r3 800f21a: 687b ldr r3, [r7, #4] 800f21c: 01db lsls r3, r3, #7 800f21e: 4413 add r3, r2 800f220: 3384 adds r3, #132 ; 0x84 800f222: 4619 mov r1, r3 800f224: 68fb ldr r3, [r7, #12] 800f226: 681b ldr r3, [r3, #0] 800f228: 461a mov r2, r3 800f22a: 687b ldr r3, [r7, #4] 800f22c: 01db lsls r3, r3, #7 800f22e: 4413 add r3, r2 800f230: 3384 adds r3, #132 ; 0x84 800f232: 6b1a ldr r2, [r3, #48] ; 0x30 800f234: 4b14 ldr r3, [pc, #80] ; (800f288 ) 800f236: 4013 ands r3, r2 800f238: 630b str r3, [r1, #48] ; 0x30 LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->ImageHeight); 800f23a: 68fb ldr r3, [r7, #12] 800f23c: 681b ldr r3, [r3, #0] 800f23e: 461a mov r2, r3 800f240: 687b ldr r3, [r7, #4] 800f242: 01db lsls r3, r3, #7 800f244: 4413 add r3, r2 800f246: 3384 adds r3, #132 ; 0x84 800f248: 461a mov r2, r3 800f24a: 68bb ldr r3, [r7, #8] 800f24c: 6adb ldr r3, [r3, #44] ; 0x2c 800f24e: 6313 str r3, [r2, #48] ; 0x30 /* Enable LTDC_Layer by setting LEN bit */ LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN; 800f250: 68fb ldr r3, [r7, #12] 800f252: 681b ldr r3, [r3, #0] 800f254: 461a mov r2, r3 800f256: 687b ldr r3, [r7, #4] 800f258: 01db lsls r3, r3, #7 800f25a: 4413 add r3, r2 800f25c: 3384 adds r3, #132 ; 0x84 800f25e: 461a mov r2, r3 800f260: 68fb ldr r3, [r7, #12] 800f262: 681b ldr r3, [r3, #0] 800f264: 4619 mov r1, r3 800f266: 687b ldr r3, [r7, #4] 800f268: 01db lsls r3, r3, #7 800f26a: 440b add r3, r1 800f26c: 3384 adds r3, #132 ; 0x84 800f26e: 681b ldr r3, [r3, #0] 800f270: f043 0301 orr.w r3, r3, #1 800f274: 6013 str r3, [r2, #0] } 800f276: bf00 nop 800f278: 3724 adds r7, #36 ; 0x24 800f27a: 46bd mov sp, r7 800f27c: f85d 7b04 ldr.w r7, [sp], #4 800f280: 4770 bx lr 800f282: bf00 nop 800f284: fffff8f8 .word 0xfffff8f8 800f288: fffff800 .word 0xfffff800 0800f28c : * supported by this function. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { 800f28c: b580 push {r7, lr} 800f28e: b086 sub sp, #24 800f290: af00 add r7, sp, #0 800f292: 6078 str r0, [r7, #4] uint32_t tickstart; uint32_t pll_config; FlagStatus pwrclkchanged = RESET; 800f294: 2300 movs r3, #0 800f296: 75fb strb r3, [r7, #23] /* Check Null pointer */ if (RCC_OscInitStruct == NULL) 800f298: 687b ldr r3, [r7, #4] 800f29a: 2b00 cmp r3, #0 800f29c: d101 bne.n 800f2a2 { return HAL_ERROR; 800f29e: 2301 movs r3, #1 800f2a0: e29b b.n 800f7da /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) 800f2a2: 687b ldr r3, [r7, #4] 800f2a4: 681b ldr r3, [r3, #0] 800f2a6: f003 0301 and.w r3, r3, #1 800f2aa: 2b00 cmp r3, #0 800f2ac: f000 8087 beq.w 800f3be { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL, It can not be disabled */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) 800f2b0: 4b96 ldr r3, [pc, #600] ; (800f50c ) 800f2b2: 689b ldr r3, [r3, #8] 800f2b4: f003 030c and.w r3, r3, #12 800f2b8: 2b04 cmp r3, #4 800f2ba: d00c beq.n 800f2d6 || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) 800f2bc: 4b93 ldr r3, [pc, #588] ; (800f50c ) 800f2be: 689b ldr r3, [r3, #8] 800f2c0: f003 030c and.w r3, r3, #12 800f2c4: 2b08 cmp r3, #8 800f2c6: d112 bne.n 800f2ee 800f2c8: 4b90 ldr r3, [pc, #576] ; (800f50c ) 800f2ca: 685b ldr r3, [r3, #4] 800f2cc: f403 0380 and.w r3, r3, #4194304 ; 0x400000 800f2d0: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 800f2d4: d10b bne.n 800f2ee { if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) 800f2d6: 4b8d ldr r3, [pc, #564] ; (800f50c ) 800f2d8: 681b ldr r3, [r3, #0] 800f2da: f403 3300 and.w r3, r3, #131072 ; 0x20000 800f2de: 2b00 cmp r3, #0 800f2e0: d06c beq.n 800f3bc 800f2e2: 687b ldr r3, [r7, #4] 800f2e4: 685b ldr r3, [r3, #4] 800f2e6: 2b00 cmp r3, #0 800f2e8: d168 bne.n 800f3bc { return HAL_ERROR; 800f2ea: 2301 movs r3, #1 800f2ec: e275 b.n 800f7da } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); 800f2ee: 687b ldr r3, [r7, #4] 800f2f0: 685b ldr r3, [r3, #4] 800f2f2: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 800f2f6: d106 bne.n 800f306 800f2f8: 4a84 ldr r2, [pc, #528] ; (800f50c ) 800f2fa: 4b84 ldr r3, [pc, #528] ; (800f50c ) 800f2fc: 681b ldr r3, [r3, #0] 800f2fe: f443 3380 orr.w r3, r3, #65536 ; 0x10000 800f302: 6013 str r3, [r2, #0] 800f304: e02e b.n 800f364 800f306: 687b ldr r3, [r7, #4] 800f308: 685b ldr r3, [r3, #4] 800f30a: 2b00 cmp r3, #0 800f30c: d10c bne.n 800f328 800f30e: 4a7f ldr r2, [pc, #508] ; (800f50c ) 800f310: 4b7e ldr r3, [pc, #504] ; (800f50c ) 800f312: 681b ldr r3, [r3, #0] 800f314: f423 3380 bic.w r3, r3, #65536 ; 0x10000 800f318: 6013 str r3, [r2, #0] 800f31a: 4a7c ldr r2, [pc, #496] ; (800f50c ) 800f31c: 4b7b ldr r3, [pc, #492] ; (800f50c ) 800f31e: 681b ldr r3, [r3, #0] 800f320: f423 2380 bic.w r3, r3, #262144 ; 0x40000 800f324: 6013 str r3, [r2, #0] 800f326: e01d b.n 800f364 800f328: 687b ldr r3, [r7, #4] 800f32a: 685b ldr r3, [r3, #4] 800f32c: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 800f330: d10c bne.n 800f34c 800f332: 4a76 ldr r2, [pc, #472] ; (800f50c ) 800f334: 4b75 ldr r3, [pc, #468] ; (800f50c ) 800f336: 681b ldr r3, [r3, #0] 800f338: f443 2380 orr.w r3, r3, #262144 ; 0x40000 800f33c: 6013 str r3, [r2, #0] 800f33e: 4a73 ldr r2, [pc, #460] ; (800f50c ) 800f340: 4b72 ldr r3, [pc, #456] ; (800f50c ) 800f342: 681b ldr r3, [r3, #0] 800f344: f443 3380 orr.w r3, r3, #65536 ; 0x10000 800f348: 6013 str r3, [r2, #0] 800f34a: e00b b.n 800f364 800f34c: 4a6f ldr r2, [pc, #444] ; (800f50c ) 800f34e: 4b6f ldr r3, [pc, #444] ; (800f50c ) 800f350: 681b ldr r3, [r3, #0] 800f352: f423 3380 bic.w r3, r3, #65536 ; 0x10000 800f356: 6013 str r3, [r2, #0] 800f358: 4a6c ldr r2, [pc, #432] ; (800f50c ) 800f35a: 4b6c ldr r3, [pc, #432] ; (800f50c ) 800f35c: 681b ldr r3, [r3, #0] 800f35e: f423 2380 bic.w r3, r3, #262144 ; 0x40000 800f362: 6013 str r3, [r2, #0] /* Check the HSE State */ if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF) 800f364: 687b ldr r3, [r7, #4] 800f366: 685b ldr r3, [r3, #4] 800f368: 2b00 cmp r3, #0 800f36a: d013 beq.n 800f394 { /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f36c: f7fe fb9a bl 800daa4 800f370: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 800f372: e008 b.n 800f386 { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) 800f374: f7fe fb96 bl 800daa4 800f378: 4602 mov r2, r0 800f37a: 693b ldr r3, [r7, #16] 800f37c: 1ad3 subs r3, r2, r3 800f37e: 2b64 cmp r3, #100 ; 0x64 800f380: d901 bls.n 800f386 { return HAL_TIMEOUT; 800f382: 2303 movs r3, #3 800f384: e229 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 800f386: 4b61 ldr r3, [pc, #388] ; (800f50c ) 800f388: 681b ldr r3, [r3, #0] 800f38a: f403 3300 and.w r3, r3, #131072 ; 0x20000 800f38e: 2b00 cmp r3, #0 800f390: d0f0 beq.n 800f374 800f392: e014 b.n 800f3be } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f394: f7fe fb86 bl 800daa4 800f398: 6138 str r0, [r7, #16] /* Wait till HSE is bypassed or disabled */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) 800f39a: e008 b.n 800f3ae { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) 800f39c: f7fe fb82 bl 800daa4 800f3a0: 4602 mov r2, r0 800f3a2: 693b ldr r3, [r7, #16] 800f3a4: 1ad3 subs r3, r2, r3 800f3a6: 2b64 cmp r3, #100 ; 0x64 800f3a8: d901 bls.n 800f3ae { return HAL_TIMEOUT; 800f3aa: 2303 movs r3, #3 800f3ac: e215 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) 800f3ae: 4b57 ldr r3, [pc, #348] ; (800f50c ) 800f3b0: 681b ldr r3, [r3, #0] 800f3b2: f403 3300 and.w r3, r3, #131072 ; 0x20000 800f3b6: 2b00 cmp r3, #0 800f3b8: d1f0 bne.n 800f39c 800f3ba: e000 b.n 800f3be if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) 800f3bc: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) 800f3be: 687b ldr r3, [r7, #4] 800f3c0: 681b ldr r3, [r3, #0] 800f3c2: f003 0302 and.w r3, r3, #2 800f3c6: 2b00 cmp r3, #0 800f3c8: d069 beq.n 800f49e /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) 800f3ca: 4b50 ldr r3, [pc, #320] ; (800f50c ) 800f3cc: 689b ldr r3, [r3, #8] 800f3ce: f003 030c and.w r3, r3, #12 800f3d2: 2b00 cmp r3, #0 800f3d4: d00b beq.n 800f3ee || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) 800f3d6: 4b4d ldr r3, [pc, #308] ; (800f50c ) 800f3d8: 689b ldr r3, [r3, #8] 800f3da: f003 030c and.w r3, r3, #12 800f3de: 2b08 cmp r3, #8 800f3e0: d11c bne.n 800f41c 800f3e2: 4b4a ldr r3, [pc, #296] ; (800f50c ) 800f3e4: 685b ldr r3, [r3, #4] 800f3e6: f403 0380 and.w r3, r3, #4194304 ; 0x400000 800f3ea: 2b00 cmp r3, #0 800f3ec: d116 bne.n 800f41c { /* When HSI is used as system clock it will not disabled */ if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) 800f3ee: 4b47 ldr r3, [pc, #284] ; (800f50c ) 800f3f0: 681b ldr r3, [r3, #0] 800f3f2: f003 0302 and.w r3, r3, #2 800f3f6: 2b00 cmp r3, #0 800f3f8: d005 beq.n 800f406 800f3fa: 687b ldr r3, [r7, #4] 800f3fc: 68db ldr r3, [r3, #12] 800f3fe: 2b01 cmp r3, #1 800f400: d001 beq.n 800f406 { return HAL_ERROR; 800f402: 2301 movs r3, #1 800f404: e1e9 b.n 800f7da } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); 800f406: 4941 ldr r1, [pc, #260] ; (800f50c ) 800f408: 4b40 ldr r3, [pc, #256] ; (800f50c ) 800f40a: 681b ldr r3, [r3, #0] 800f40c: f023 02f8 bic.w r2, r3, #248 ; 0xf8 800f410: 687b ldr r3, [r7, #4] 800f412: 691b ldr r3, [r3, #16] 800f414: 00db lsls r3, r3, #3 800f416: 4313 orrs r3, r2 800f418: 600b str r3, [r1, #0] if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) 800f41a: e040 b.n 800f49e } } else { /* Check the HSI State */ if ((RCC_OscInitStruct->HSIState) != RCC_HSI_OFF) 800f41c: 687b ldr r3, [r7, #4] 800f41e: 68db ldr r3, [r3, #12] 800f420: 2b00 cmp r3, #0 800f422: d023 beq.n 800f46c { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); 800f424: 4a39 ldr r2, [pc, #228] ; (800f50c ) 800f426: 4b39 ldr r3, [pc, #228] ; (800f50c ) 800f428: 681b ldr r3, [r3, #0] 800f42a: f043 0301 orr.w r3, r3, #1 800f42e: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f430: f7fe fb38 bl 800daa4 800f434: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 800f436: e008 b.n 800f44a { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) 800f438: f7fe fb34 bl 800daa4 800f43c: 4602 mov r2, r0 800f43e: 693b ldr r3, [r7, #16] 800f440: 1ad3 subs r3, r2, r3 800f442: 2b02 cmp r3, #2 800f444: d901 bls.n 800f44a { return HAL_TIMEOUT; 800f446: 2303 movs r3, #3 800f448: e1c7 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 800f44a: 4b30 ldr r3, [pc, #192] ; (800f50c ) 800f44c: 681b ldr r3, [r3, #0] 800f44e: f003 0302 and.w r3, r3, #2 800f452: 2b00 cmp r3, #0 800f454: d0f0 beq.n 800f438 } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); 800f456: 492d ldr r1, [pc, #180] ; (800f50c ) 800f458: 4b2c ldr r3, [pc, #176] ; (800f50c ) 800f45a: 681b ldr r3, [r3, #0] 800f45c: f023 02f8 bic.w r2, r3, #248 ; 0xf8 800f460: 687b ldr r3, [r7, #4] 800f462: 691b ldr r3, [r3, #16] 800f464: 00db lsls r3, r3, #3 800f466: 4313 orrs r3, r2 800f468: 600b str r3, [r1, #0] 800f46a: e018 b.n 800f49e } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); 800f46c: 4a27 ldr r2, [pc, #156] ; (800f50c ) 800f46e: 4b27 ldr r3, [pc, #156] ; (800f50c ) 800f470: 681b ldr r3, [r3, #0] 800f472: f023 0301 bic.w r3, r3, #1 800f476: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f478: f7fe fb14 bl 800daa4 800f47c: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) 800f47e: e008 b.n 800f492 { if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE) 800f480: f7fe fb10 bl 800daa4 800f484: 4602 mov r2, r0 800f486: 693b ldr r3, [r7, #16] 800f488: 1ad3 subs r3, r2, r3 800f48a: 2b02 cmp r3, #2 800f48c: d901 bls.n 800f492 { return HAL_TIMEOUT; 800f48e: 2303 movs r3, #3 800f490: e1a3 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) 800f492: 4b1e ldr r3, [pc, #120] ; (800f50c ) 800f494: 681b ldr r3, [r3, #0] 800f496: f003 0302 and.w r3, r3, #2 800f49a: 2b00 cmp r3, #0 800f49c: d1f0 bne.n 800f480 } } } } /*------------------------------ LSI Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) 800f49e: 687b ldr r3, [r7, #4] 800f4a0: 681b ldr r3, [r3, #0] 800f4a2: f003 0308 and.w r3, r3, #8 800f4a6: 2b00 cmp r3, #0 800f4a8: d038 beq.n 800f51c { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if ((RCC_OscInitStruct->LSIState) != RCC_LSI_OFF) 800f4aa: 687b ldr r3, [r7, #4] 800f4ac: 695b ldr r3, [r3, #20] 800f4ae: 2b00 cmp r3, #0 800f4b0: d019 beq.n 800f4e6 { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); 800f4b2: 4a16 ldr r2, [pc, #88] ; (800f50c ) 800f4b4: 4b15 ldr r3, [pc, #84] ; (800f50c ) 800f4b6: 6f5b ldr r3, [r3, #116] ; 0x74 800f4b8: f043 0301 orr.w r3, r3, #1 800f4bc: 6753 str r3, [r2, #116] ; 0x74 /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f4be: f7fe faf1 bl 800daa4 800f4c2: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) 800f4c4: e008 b.n 800f4d8 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) 800f4c6: f7fe faed bl 800daa4 800f4ca: 4602 mov r2, r0 800f4cc: 693b ldr r3, [r7, #16] 800f4ce: 1ad3 subs r3, r2, r3 800f4d0: 2b02 cmp r3, #2 800f4d2: d901 bls.n 800f4d8 { return HAL_TIMEOUT; 800f4d4: 2303 movs r3, #3 800f4d6: e180 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) 800f4d8: 4b0c ldr r3, [pc, #48] ; (800f50c ) 800f4da: 6f5b ldr r3, [r3, #116] ; 0x74 800f4dc: f003 0302 and.w r3, r3, #2 800f4e0: 2b00 cmp r3, #0 800f4e2: d0f0 beq.n 800f4c6 800f4e4: e01a b.n 800f51c } } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); 800f4e6: 4a09 ldr r2, [pc, #36] ; (800f50c ) 800f4e8: 4b08 ldr r3, [pc, #32] ; (800f50c ) 800f4ea: 6f5b ldr r3, [r3, #116] ; 0x74 800f4ec: f023 0301 bic.w r3, r3, #1 800f4f0: 6753 str r3, [r2, #116] ; 0x74 /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f4f2: f7fe fad7 bl 800daa4 800f4f6: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) 800f4f8: e00a b.n 800f510 { if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE) 800f4fa: f7fe fad3 bl 800daa4 800f4fe: 4602 mov r2, r0 800f500: 693b ldr r3, [r7, #16] 800f502: 1ad3 subs r3, r2, r3 800f504: 2b02 cmp r3, #2 800f506: d903 bls.n 800f510 { return HAL_TIMEOUT; 800f508: 2303 movs r3, #3 800f50a: e166 b.n 800f7da 800f50c: 40023800 .word 0x40023800 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) 800f510: 4b92 ldr r3, [pc, #584] ; (800f75c ) 800f512: 6f5b ldr r3, [r3, #116] ; 0x74 800f514: f003 0302 and.w r3, r3, #2 800f518: 2b00 cmp r3, #0 800f51a: d1ee bne.n 800f4fa } } } } /*------------------------------ LSE Configuration -------------------------*/ if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) 800f51c: 687b ldr r3, [r7, #4] 800f51e: 681b ldr r3, [r3, #0] 800f520: f003 0304 and.w r3, r3, #4 800f524: 2b00 cmp r3, #0 800f526: f000 80a4 beq.w 800f672 /* Check the parameters */ assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); /* Update LSE configuration in Backup Domain control register */ /* Requires to enable write access to Backup Domain of necessary */ if (__HAL_RCC_PWR_IS_CLK_DISABLED()) 800f52a: 4b8c ldr r3, [pc, #560] ; (800f75c ) 800f52c: 6c1b ldr r3, [r3, #64] ; 0x40 800f52e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 800f532: 2b00 cmp r3, #0 800f534: d10d bne.n 800f552 { /* Enable Power Clock*/ __HAL_RCC_PWR_CLK_ENABLE(); 800f536: 4a89 ldr r2, [pc, #548] ; (800f75c ) 800f538: 4b88 ldr r3, [pc, #544] ; (800f75c ) 800f53a: 6c1b ldr r3, [r3, #64] ; 0x40 800f53c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 800f540: 6413 str r3, [r2, #64] ; 0x40 800f542: 4b86 ldr r3, [pc, #536] ; (800f75c ) 800f544: 6c1b ldr r3, [r3, #64] ; 0x40 800f546: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 800f54a: 60bb str r3, [r7, #8] 800f54c: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; 800f54e: 2301 movs r3, #1 800f550: 75fb strb r3, [r7, #23] } if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 800f552: 4b83 ldr r3, [pc, #524] ; (800f760 ) 800f554: 681b ldr r3, [r3, #0] 800f556: f403 7380 and.w r3, r3, #256 ; 0x100 800f55a: 2b00 cmp r3, #0 800f55c: d118 bne.n 800f590 { /* Enable write access to Backup domain */ PWR->CR1 |= PWR_CR1_DBP; 800f55e: 4a80 ldr r2, [pc, #512] ; (800f760 ) 800f560: 4b7f ldr r3, [pc, #508] ; (800f760 ) 800f562: 681b ldr r3, [r3, #0] 800f564: f443 7380 orr.w r3, r3, #256 ; 0x100 800f568: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); 800f56a: f7fe fa9b bl 800daa4 800f56e: 6138 str r0, [r7, #16] while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 800f570: e008 b.n 800f584 { if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) 800f572: f7fe fa97 bl 800daa4 800f576: 4602 mov r2, r0 800f578: 693b ldr r3, [r7, #16] 800f57a: 1ad3 subs r3, r2, r3 800f57c: 2b64 cmp r3, #100 ; 0x64 800f57e: d901 bls.n 800f584 { return HAL_TIMEOUT; 800f580: 2303 movs r3, #3 800f582: e12a b.n 800f7da while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) 800f584: 4b76 ldr r3, [pc, #472] ; (800f760 ) 800f586: 681b ldr r3, [r3, #0] 800f588: f403 7380 and.w r3, r3, #256 ; 0x100 800f58c: 2b00 cmp r3, #0 800f58e: d0f0 beq.n 800f572 } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); 800f590: 687b ldr r3, [r7, #4] 800f592: 689b ldr r3, [r3, #8] 800f594: 2b01 cmp r3, #1 800f596: d106 bne.n 800f5a6 800f598: 4a70 ldr r2, [pc, #448] ; (800f75c ) 800f59a: 4b70 ldr r3, [pc, #448] ; (800f75c ) 800f59c: 6f1b ldr r3, [r3, #112] ; 0x70 800f59e: f043 0301 orr.w r3, r3, #1 800f5a2: 6713 str r3, [r2, #112] ; 0x70 800f5a4: e02d b.n 800f602 800f5a6: 687b ldr r3, [r7, #4] 800f5a8: 689b ldr r3, [r3, #8] 800f5aa: 2b00 cmp r3, #0 800f5ac: d10c bne.n 800f5c8 800f5ae: 4a6b ldr r2, [pc, #428] ; (800f75c ) 800f5b0: 4b6a ldr r3, [pc, #424] ; (800f75c ) 800f5b2: 6f1b ldr r3, [r3, #112] ; 0x70 800f5b4: f023 0301 bic.w r3, r3, #1 800f5b8: 6713 str r3, [r2, #112] ; 0x70 800f5ba: 4a68 ldr r2, [pc, #416] ; (800f75c ) 800f5bc: 4b67 ldr r3, [pc, #412] ; (800f75c ) 800f5be: 6f1b ldr r3, [r3, #112] ; 0x70 800f5c0: f023 0304 bic.w r3, r3, #4 800f5c4: 6713 str r3, [r2, #112] ; 0x70 800f5c6: e01c b.n 800f602 800f5c8: 687b ldr r3, [r7, #4] 800f5ca: 689b ldr r3, [r3, #8] 800f5cc: 2b05 cmp r3, #5 800f5ce: d10c bne.n 800f5ea 800f5d0: 4a62 ldr r2, [pc, #392] ; (800f75c ) 800f5d2: 4b62 ldr r3, [pc, #392] ; (800f75c ) 800f5d4: 6f1b ldr r3, [r3, #112] ; 0x70 800f5d6: f043 0304 orr.w r3, r3, #4 800f5da: 6713 str r3, [r2, #112] ; 0x70 800f5dc: 4a5f ldr r2, [pc, #380] ; (800f75c ) 800f5de: 4b5f ldr r3, [pc, #380] ; (800f75c ) 800f5e0: 6f1b ldr r3, [r3, #112] ; 0x70 800f5e2: f043 0301 orr.w r3, r3, #1 800f5e6: 6713 str r3, [r2, #112] ; 0x70 800f5e8: e00b b.n 800f602 800f5ea: 4a5c ldr r2, [pc, #368] ; (800f75c ) 800f5ec: 4b5b ldr r3, [pc, #364] ; (800f75c ) 800f5ee: 6f1b ldr r3, [r3, #112] ; 0x70 800f5f0: f023 0301 bic.w r3, r3, #1 800f5f4: 6713 str r3, [r2, #112] ; 0x70 800f5f6: 4a59 ldr r2, [pc, #356] ; (800f75c ) 800f5f8: 4b58 ldr r3, [pc, #352] ; (800f75c ) 800f5fa: 6f1b ldr r3, [r3, #112] ; 0x70 800f5fc: f023 0304 bic.w r3, r3, #4 800f600: 6713 str r3, [r2, #112] ; 0x70 /* Check the LSE State */ if ((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF) 800f602: 687b ldr r3, [r7, #4] 800f604: 689b ldr r3, [r3, #8] 800f606: 2b00 cmp r3, #0 800f608: d015 beq.n 800f636 { /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f60a: f7fe fa4b bl 800daa4 800f60e: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 800f610: e00a b.n 800f628 { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) 800f612: f7fe fa47 bl 800daa4 800f616: 4602 mov r2, r0 800f618: 693b ldr r3, [r7, #16] 800f61a: 1ad3 subs r3, r2, r3 800f61c: f241 3288 movw r2, #5000 ; 0x1388 800f620: 4293 cmp r3, r2 800f622: d901 bls.n 800f628 { return HAL_TIMEOUT; 800f624: 2303 movs r3, #3 800f626: e0d8 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 800f628: 4b4c ldr r3, [pc, #304] ; (800f75c ) 800f62a: 6f1b ldr r3, [r3, #112] ; 0x70 800f62c: f003 0302 and.w r3, r3, #2 800f630: 2b00 cmp r3, #0 800f632: d0ee beq.n 800f612 800f634: e014 b.n 800f660 } } else { /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f636: f7fe fa35 bl 800daa4 800f63a: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) 800f63c: e00a b.n 800f654 { if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE) 800f63e: f7fe fa31 bl 800daa4 800f642: 4602 mov r2, r0 800f644: 693b ldr r3, [r7, #16] 800f646: 1ad3 subs r3, r2, r3 800f648: f241 3288 movw r2, #5000 ; 0x1388 800f64c: 4293 cmp r3, r2 800f64e: d901 bls.n 800f654 { return HAL_TIMEOUT; 800f650: 2303 movs r3, #3 800f652: e0c2 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) 800f654: 4b41 ldr r3, [pc, #260] ; (800f75c ) 800f656: 6f1b ldr r3, [r3, #112] ; 0x70 800f658: f003 0302 and.w r3, r3, #2 800f65c: 2b00 cmp r3, #0 800f65e: d1ee bne.n 800f63e } } } /* Restore clock configuration if changed */ if (pwrclkchanged == SET) 800f660: 7dfb ldrb r3, [r7, #23] 800f662: 2b01 cmp r3, #1 800f664: d105 bne.n 800f672 { __HAL_RCC_PWR_CLK_DISABLE(); 800f666: 4a3d ldr r2, [pc, #244] ; (800f75c ) 800f668: 4b3c ldr r3, [pc, #240] ; (800f75c ) 800f66a: 6c1b ldr r3, [r3, #64] ; 0x40 800f66c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 800f670: 6413 str r3, [r2, #64] ; 0x40 } } /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) 800f672: 687b ldr r3, [r7, #4] 800f674: 699b ldr r3, [r3, #24] 800f676: 2b00 cmp r3, #0 800f678: f000 80ae beq.w 800f7d8 { /* Check if the PLL is used as system clock or not */ if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) 800f67c: 4b37 ldr r3, [pc, #220] ; (800f75c ) 800f67e: 689b ldr r3, [r3, #8] 800f680: f003 030c and.w r3, r3, #12 800f684: 2b08 cmp r3, #8 800f686: d06d beq.n 800f764 { if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) 800f688: 687b ldr r3, [r7, #4] 800f68a: 699b ldr r3, [r3, #24] 800f68c: 2b02 cmp r3, #2 800f68e: d14b bne.n 800f728 #if defined (RCC_PLLCFGR_PLLR) assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); #endif /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); 800f690: 4a32 ldr r2, [pc, #200] ; (800f75c ) 800f692: 4b32 ldr r3, [pc, #200] ; (800f75c ) 800f694: 681b ldr r3, [r3, #0] 800f696: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 800f69a: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f69c: f7fe fa02 bl 800daa4 800f6a0: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 800f6a2: e008 b.n 800f6b6 { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 800f6a4: f7fe f9fe bl 800daa4 800f6a8: 4602 mov r2, r0 800f6aa: 693b ldr r3, [r7, #16] 800f6ac: 1ad3 subs r3, r2, r3 800f6ae: 2b02 cmp r3, #2 800f6b0: d901 bls.n 800f6b6 { return HAL_TIMEOUT; 800f6b2: 2303 movs r3, #3 800f6b4: e091 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 800f6b6: 4b29 ldr r3, [pc, #164] ; (800f75c ) 800f6b8: 681b ldr r3, [r3, #0] 800f6ba: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 800f6be: 2b00 cmp r3, #0 800f6c0: d1f0 bne.n 800f6a4 } } /* Configure the main PLL clock source, multiplication and division factors. */ #if defined (RCC_PLLCFGR_PLLR) __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, 800f6c2: 4926 ldr r1, [pc, #152] ; (800f75c ) 800f6c4: 687b ldr r3, [r7, #4] 800f6c6: 69da ldr r2, [r3, #28] 800f6c8: 687b ldr r3, [r7, #4] 800f6ca: 6a1b ldr r3, [r3, #32] 800f6cc: 431a orrs r2, r3 800f6ce: 687b ldr r3, [r7, #4] 800f6d0: 6a5b ldr r3, [r3, #36] ; 0x24 800f6d2: 019b lsls r3, r3, #6 800f6d4: 431a orrs r2, r3 800f6d6: 687b ldr r3, [r7, #4] 800f6d8: 6a9b ldr r3, [r3, #40] ; 0x28 800f6da: 085b lsrs r3, r3, #1 800f6dc: 3b01 subs r3, #1 800f6de: 041b lsls r3, r3, #16 800f6e0: 431a orrs r2, r3 800f6e2: 687b ldr r3, [r7, #4] 800f6e4: 6adb ldr r3, [r3, #44] ; 0x2c 800f6e6: 061b lsls r3, r3, #24 800f6e8: 431a orrs r2, r3 800f6ea: 687b ldr r3, [r7, #4] 800f6ec: 6b1b ldr r3, [r3, #48] ; 0x30 800f6ee: 071b lsls r3, r3, #28 800f6f0: 4313 orrs r3, r2 800f6f2: 604b str r3, [r1, #4] RCC_OscInitStruct->PLL.PLLP, RCC_OscInitStruct->PLL.PLLQ); #endif /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); 800f6f4: 4a19 ldr r2, [pc, #100] ; (800f75c ) 800f6f6: 4b19 ldr r3, [pc, #100] ; (800f75c ) 800f6f8: 681b ldr r3, [r3, #0] 800f6fa: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 800f6fe: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f700: f7fe f9d0 bl 800daa4 800f704: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 800f706: e008 b.n 800f71a { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 800f708: f7fe f9cc bl 800daa4 800f70c: 4602 mov r2, r0 800f70e: 693b ldr r3, [r7, #16] 800f710: 1ad3 subs r3, r2, r3 800f712: 2b02 cmp r3, #2 800f714: d901 bls.n 800f71a { return HAL_TIMEOUT; 800f716: 2303 movs r3, #3 800f718: e05f b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 800f71a: 4b10 ldr r3, [pc, #64] ; (800f75c ) 800f71c: 681b ldr r3, [r3, #0] 800f71e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 800f722: 2b00 cmp r3, #0 800f724: d0f0 beq.n 800f708 800f726: e057 b.n 800f7d8 } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); 800f728: 4a0c ldr r2, [pc, #48] ; (800f75c ) 800f72a: 4b0c ldr r3, [pc, #48] ; (800f75c ) 800f72c: 681b ldr r3, [r3, #0] 800f72e: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 800f732: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f734: f7fe f9b6 bl 800daa4 800f738: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 800f73a: e008 b.n 800f74e { if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE) 800f73c: f7fe f9b2 bl 800daa4 800f740: 4602 mov r2, r0 800f742: 693b ldr r3, [r7, #16] 800f744: 1ad3 subs r3, r2, r3 800f746: 2b02 cmp r3, #2 800f748: d901 bls.n 800f74e { return HAL_TIMEOUT; 800f74a: 2303 movs r3, #3 800f74c: e045 b.n 800f7da while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) 800f74e: 4b03 ldr r3, [pc, #12] ; (800f75c ) 800f750: 681b ldr r3, [r3, #0] 800f752: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 800f756: 2b00 cmp r3, #0 800f758: d1f0 bne.n 800f73c 800f75a: e03d b.n 800f7d8 800f75c: 40023800 .word 0x40023800 800f760: 40007000 .word 0x40007000 } } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->PLLCFGR; 800f764: 4b1f ldr r3, [pc, #124] ; (800f7e4 ) 800f766: 685b ldr r3, [r3, #4] 800f768: 60fb str r3, [r7, #12] #if defined (RCC_PLLCFGR_PLLR) if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) || 800f76a: 687b ldr r3, [r7, #4] 800f76c: 699b ldr r3, [r3, #24] 800f76e: 2b01 cmp r3, #1 800f770: d030 beq.n 800f7d4 (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || 800f772: 68fb ldr r3, [r7, #12] 800f774: f403 0280 and.w r2, r3, #4194304 ; 0x400000 800f778: 687b ldr r3, [r7, #4] 800f77a: 69db ldr r3, [r3, #28] if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) || 800f77c: 429a cmp r2, r3 800f77e: d129 bne.n 800f7d4 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || 800f780: 68fb ldr r3, [r7, #12] 800f782: f003 023f and.w r2, r3, #63 ; 0x3f 800f786: 687b ldr r3, [r7, #4] 800f788: 6a1b ldr r3, [r3, #32] (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || 800f78a: 429a cmp r2, r3 800f78c: d122 bne.n 800f7d4 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || 800f78e: 68fa ldr r2, [r7, #12] 800f790: f647 73c0 movw r3, #32704 ; 0x7fc0 800f794: 4013 ands r3, r2 800f796: 687a ldr r2, [r7, #4] 800f798: 6a52 ldr r2, [r2, #36] ; 0x24 800f79a: 0192 lsls r2, r2, #6 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || 800f79c: 4293 cmp r3, r2 800f79e: d119 bne.n 800f7d4 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || 800f7a0: 68fb ldr r3, [r7, #12] 800f7a2: f403 3240 and.w r2, r3, #196608 ; 0x30000 800f7a6: 687b ldr r3, [r7, #4] 800f7a8: 6a9b ldr r3, [r3, #40] ; 0x28 800f7aa: 085b lsrs r3, r3, #1 800f7ac: 3b01 subs r3, #1 800f7ae: 041b lsls r3, r3, #16 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || 800f7b0: 429a cmp r2, r3 800f7b2: d10f bne.n 800f7d4 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) || 800f7b4: 68fb ldr r3, [r7, #12] 800f7b6: f003 6270 and.w r2, r3, #251658240 ; 0xf000000 800f7ba: 687b ldr r3, [r7, #4] 800f7bc: 6adb ldr r3, [r3, #44] ; 0x2c 800f7be: 061b lsls r3, r3, #24 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || 800f7c0: 429a cmp r2, r3 800f7c2: d107 bne.n 800f7d4 (READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->PLL.PLLR << RCC_PLLCFGR_PLLR_Pos))) 800f7c4: 68fb ldr r3, [r7, #12] 800f7c6: f003 42e0 and.w r2, r3, #1879048192 ; 0x70000000 800f7ca: 687b ldr r3, [r7, #4] 800f7cc: 6b1b ldr r3, [r3, #48] ; 0x30 800f7ce: 071b lsls r3, r3, #28 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) || 800f7d0: 429a cmp r2, r3 800f7d2: d001 beq.n 800f7d8 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) || (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) || (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos))) #endif { return HAL_ERROR; 800f7d4: 2301 movs r3, #1 800f7d6: e000 b.n 800f7da } } } return HAL_OK; 800f7d8: 2300 movs r3, #0 } 800f7da: 4618 mov r0, r3 800f7dc: 3718 adds r7, #24 800f7de: 46bd mov sp, r7 800f7e0: bd80 pop {r7, pc} 800f7e2: bf00 nop 800f7e4: 40023800 .word 0x40023800 0800f7e8 : * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency * (for more details refer to section above "Initialization/de-initialization functions") * @retval None */ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { 800f7e8: b580 push {r7, lr} 800f7ea: b084 sub sp, #16 800f7ec: af00 add r7, sp, #0 800f7ee: 6078 str r0, [r7, #4] 800f7f0: 6039 str r1, [r7, #0] uint32_t tickstart = 0; 800f7f2: 2300 movs r3, #0 800f7f4: 60fb str r3, [r7, #12] /* Check Null pointer */ if (RCC_ClkInitStruct == NULL) 800f7f6: 687b ldr r3, [r7, #4] 800f7f8: 2b00 cmp r3, #0 800f7fa: d101 bne.n 800f800 { return HAL_ERROR; 800f7fc: 2301 movs r3, #1 800f7fe: e0d0 b.n 800f9a2 /* To correctly read data from FLASH memory, the number of wait states (LATENCY) must be correctly programmed according to the frequency of the CPU clock (HCLK) and the supply voltage of the device. */ /* Increasing the CPU frequency */ if (FLatency > __HAL_FLASH_GET_LATENCY()) 800f800: 4b6a ldr r3, [pc, #424] ; (800f9ac ) 800f802: 681b ldr r3, [r3, #0] 800f804: f003 020f and.w r2, r3, #15 800f808: 683b ldr r3, [r7, #0] 800f80a: 429a cmp r2, r3 800f80c: d210 bcs.n 800f830 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); 800f80e: 4967 ldr r1, [pc, #412] ; (800f9ac ) 800f810: 4b66 ldr r3, [pc, #408] ; (800f9ac ) 800f812: 681b ldr r3, [r3, #0] 800f814: f023 020f bic.w r2, r3, #15 800f818: 683b ldr r3, [r7, #0] 800f81a: 4313 orrs r3, r2 800f81c: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) 800f81e: 4b63 ldr r3, [pc, #396] ; (800f9ac ) 800f820: 681b ldr r3, [r3, #0] 800f822: f003 020f and.w r2, r3, #15 800f826: 683b ldr r3, [r7, #0] 800f828: 429a cmp r2, r3 800f82a: d001 beq.n 800f830 { return HAL_ERROR; 800f82c: 2301 movs r3, #1 800f82e: e0b8 b.n 800f9a2 } } /*-------------------------- HCLK Configuration --------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) 800f830: 687b ldr r3, [r7, #4] 800f832: 681b ldr r3, [r3, #0] 800f834: f003 0302 and.w r3, r3, #2 800f838: 2b00 cmp r3, #0 800f83a: d020 beq.n 800f87e { /* Set the highest APBx dividers in order to ensure that we do not go through a non-spec phase whatever we decrease or increase HCLK. */ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) 800f83c: 687b ldr r3, [r7, #4] 800f83e: 681b ldr r3, [r3, #0] 800f840: f003 0304 and.w r3, r3, #4 800f844: 2b00 cmp r3, #0 800f846: d005 beq.n 800f854 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); 800f848: 4a59 ldr r2, [pc, #356] ; (800f9b0 ) 800f84a: 4b59 ldr r3, [pc, #356] ; (800f9b0 ) 800f84c: 689b ldr r3, [r3, #8] 800f84e: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 800f852: 6093 str r3, [r2, #8] } if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) 800f854: 687b ldr r3, [r7, #4] 800f856: 681b ldr r3, [r3, #0] 800f858: f003 0308 and.w r3, r3, #8 800f85c: 2b00 cmp r3, #0 800f85e: d005 beq.n 800f86c { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); 800f860: 4a53 ldr r2, [pc, #332] ; (800f9b0 ) 800f862: 4b53 ldr r3, [pc, #332] ; (800f9b0 ) 800f864: 689b ldr r3, [r3, #8] 800f866: f443 4360 orr.w r3, r3, #57344 ; 0xe000 800f86a: 6093 str r3, [r2, #8] } /* Set the new HCLK clock divider */ assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); 800f86c: 4950 ldr r1, [pc, #320] ; (800f9b0 ) 800f86e: 4b50 ldr r3, [pc, #320] ; (800f9b0 ) 800f870: 689b ldr r3, [r3, #8] 800f872: f023 02f0 bic.w r2, r3, #240 ; 0xf0 800f876: 687b ldr r3, [r7, #4] 800f878: 689b ldr r3, [r3, #8] 800f87a: 4313 orrs r3, r2 800f87c: 608b str r3, [r1, #8] } /*------------------------- SYSCLK Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) 800f87e: 687b ldr r3, [r7, #4] 800f880: 681b ldr r3, [r3, #0] 800f882: f003 0301 and.w r3, r3, #1 800f886: 2b00 cmp r3, #0 800f888: d040 beq.n 800f90c { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) 800f88a: 687b ldr r3, [r7, #4] 800f88c: 685b ldr r3, [r3, #4] 800f88e: 2b01 cmp r3, #1 800f890: d107 bne.n 800f8a2 { /* Check the HSE ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) 800f892: 4b47 ldr r3, [pc, #284] ; (800f9b0 ) 800f894: 681b ldr r3, [r3, #0] 800f896: f403 3300 and.w r3, r3, #131072 ; 0x20000 800f89a: 2b00 cmp r3, #0 800f89c: d115 bne.n 800f8ca { return HAL_ERROR; 800f89e: 2301 movs r3, #1 800f8a0: e07f b.n 800f9a2 } } /* PLL is selected as System Clock Source */ else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) 800f8a2: 687b ldr r3, [r7, #4] 800f8a4: 685b ldr r3, [r3, #4] 800f8a6: 2b02 cmp r3, #2 800f8a8: d107 bne.n 800f8ba { /* Check the PLL ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) 800f8aa: 4b41 ldr r3, [pc, #260] ; (800f9b0 ) 800f8ac: 681b ldr r3, [r3, #0] 800f8ae: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 800f8b2: 2b00 cmp r3, #0 800f8b4: d109 bne.n 800f8ca { return HAL_ERROR; 800f8b6: 2301 movs r3, #1 800f8b8: e073 b.n 800f9a2 } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) 800f8ba: 4b3d ldr r3, [pc, #244] ; (800f9b0 ) 800f8bc: 681b ldr r3, [r3, #0] 800f8be: f003 0302 and.w r3, r3, #2 800f8c2: 2b00 cmp r3, #0 800f8c4: d101 bne.n 800f8ca { return HAL_ERROR; 800f8c6: 2301 movs r3, #1 800f8c8: e06b b.n 800f9a2 } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); 800f8ca: 4939 ldr r1, [pc, #228] ; (800f9b0 ) 800f8cc: 4b38 ldr r3, [pc, #224] ; (800f9b0 ) 800f8ce: 689b ldr r3, [r3, #8] 800f8d0: f023 0203 bic.w r2, r3, #3 800f8d4: 687b ldr r3, [r7, #4] 800f8d6: 685b ldr r3, [r3, #4] 800f8d8: 4313 orrs r3, r2 800f8da: 608b str r3, [r1, #8] /* Get Start Tick*/ tickstart = HAL_GetTick(); 800f8dc: f7fe f8e2 bl 800daa4 800f8e0: 60f8 str r0, [r7, #12] while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) 800f8e2: e00a b.n 800f8fa { if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) 800f8e4: f7fe f8de bl 800daa4 800f8e8: 4602 mov r2, r0 800f8ea: 68fb ldr r3, [r7, #12] 800f8ec: 1ad3 subs r3, r2, r3 800f8ee: f241 3288 movw r2, #5000 ; 0x1388 800f8f2: 4293 cmp r3, r2 800f8f4: d901 bls.n 800f8fa { return HAL_TIMEOUT; 800f8f6: 2303 movs r3, #3 800f8f8: e053 b.n 800f9a2 while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) 800f8fa: 4b2d ldr r3, [pc, #180] ; (800f9b0 ) 800f8fc: 689b ldr r3, [r3, #8] 800f8fe: f003 020c and.w r2, r3, #12 800f902: 687b ldr r3, [r7, #4] 800f904: 685b ldr r3, [r3, #4] 800f906: 009b lsls r3, r3, #2 800f908: 429a cmp r2, r3 800f90a: d1eb bne.n 800f8e4 } } } /* Decreasing the number of wait states because of lower CPU frequency */ if (FLatency < __HAL_FLASH_GET_LATENCY()) 800f90c: 4b27 ldr r3, [pc, #156] ; (800f9ac ) 800f90e: 681b ldr r3, [r3, #0] 800f910: f003 020f and.w r2, r3, #15 800f914: 683b ldr r3, [r7, #0] 800f916: 429a cmp r2, r3 800f918: d910 bls.n 800f93c { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); 800f91a: 4924 ldr r1, [pc, #144] ; (800f9ac ) 800f91c: 4b23 ldr r3, [pc, #140] ; (800f9ac ) 800f91e: 681b ldr r3, [r3, #0] 800f920: f023 020f bic.w r2, r3, #15 800f924: 683b ldr r3, [r7, #0] 800f926: 4313 orrs r3, r2 800f928: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if (__HAL_FLASH_GET_LATENCY() != FLatency) 800f92a: 4b20 ldr r3, [pc, #128] ; (800f9ac ) 800f92c: 681b ldr r3, [r3, #0] 800f92e: f003 020f and.w r2, r3, #15 800f932: 683b ldr r3, [r7, #0] 800f934: 429a cmp r2, r3 800f936: d001 beq.n 800f93c { return HAL_ERROR; 800f938: 2301 movs r3, #1 800f93a: e032 b.n 800f9a2 } } /*-------------------------- PCLK1 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) 800f93c: 687b ldr r3, [r7, #4] 800f93e: 681b ldr r3, [r3, #0] 800f940: f003 0304 and.w r3, r3, #4 800f944: 2b00 cmp r3, #0 800f946: d008 beq.n 800f95a { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); 800f948: 4919 ldr r1, [pc, #100] ; (800f9b0 ) 800f94a: 4b19 ldr r3, [pc, #100] ; (800f9b0 ) 800f94c: 689b ldr r3, [r3, #8] 800f94e: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 800f952: 687b ldr r3, [r7, #4] 800f954: 68db ldr r3, [r3, #12] 800f956: 4313 orrs r3, r2 800f958: 608b str r3, [r1, #8] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) 800f95a: 687b ldr r3, [r7, #4] 800f95c: 681b ldr r3, [r3, #0] 800f95e: f003 0308 and.w r3, r3, #8 800f962: 2b00 cmp r3, #0 800f964: d009 beq.n 800f97a { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); 800f966: 4912 ldr r1, [pc, #72] ; (800f9b0 ) 800f968: 4b11 ldr r3, [pc, #68] ; (800f9b0 ) 800f96a: 689b ldr r3, [r3, #8] 800f96c: f423 4260 bic.w r2, r3, #57344 ; 0xe000 800f970: 687b ldr r3, [r7, #4] 800f972: 691b ldr r3, [r3, #16] 800f974: 00db lsls r3, r3, #3 800f976: 4313 orrs r3, r2 800f978: 608b str r3, [r1, #8] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos]; 800f97a: f000 f821 bl 800f9c0 800f97e: 4601 mov r1, r0 800f980: 4b0b ldr r3, [pc, #44] ; (800f9b0 ) 800f982: 689b ldr r3, [r3, #8] 800f984: 091b lsrs r3, r3, #4 800f986: f003 030f and.w r3, r3, #15 800f98a: 4a0a ldr r2, [pc, #40] ; (800f9b4 ) 800f98c: 5cd3 ldrb r3, [r2, r3] 800f98e: fa21 f303 lsr.w r3, r1, r3 800f992: 4a09 ldr r2, [pc, #36] ; (800f9b8 ) 800f994: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ HAL_InitTick(uwTickPrio); 800f996: 4b09 ldr r3, [pc, #36] ; (800f9bc ) 800f998: 681b ldr r3, [r3, #0] 800f99a: 4618 mov r0, r3 800f99c: f7fe f83e bl 800da1c return HAL_OK; 800f9a0: 2300 movs r3, #0 } 800f9a2: 4618 mov r0, r3 800f9a4: 3710 adds r7, #16 800f9a6: 46bd mov sp, r7 800f9a8: bd80 pop {r7, pc} 800f9aa: bf00 nop 800f9ac: 40023c00 .word 0x40023c00 800f9b0: 40023800 .word 0x40023800 800f9b4: 08015584 .word 0x08015584 800f9b8: 20020214 .word 0x20020214 800f9bc: 20020220 .word 0x20020220 0800f9c0 : * * * @retval SYSCLK frequency */ uint32_t HAL_RCC_GetSysClockFreq(void) { 800f9c0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 800f9c4: b087 sub sp, #28 800f9c6: af00 add r7, sp, #0 uint32_t pllm = 0, pllvco = 0, pllp = 0; 800f9c8: 2200 movs r2, #0 800f9ca: 60fa str r2, [r7, #12] 800f9cc: 2200 movs r2, #0 800f9ce: 617a str r2, [r7, #20] 800f9d0: 2200 movs r2, #0 800f9d2: 60ba str r2, [r7, #8] uint32_t sysclockfreq = 0; 800f9d4: 2200 movs r2, #0 800f9d6: 613a str r2, [r7, #16] /* Get SYSCLK source -------------------------------------------------------*/ switch (RCC->CFGR & RCC_CFGR_SWS) 800f9d8: 4a51 ldr r2, [pc, #324] ; (800fb20 ) 800f9da: 6892 ldr r2, [r2, #8] 800f9dc: f002 020c and.w r2, r2, #12 800f9e0: 2a04 cmp r2, #4 800f9e2: d007 beq.n 800f9f4 800f9e4: 2a08 cmp r2, #8 800f9e6: d008 beq.n 800f9fa 800f9e8: 2a00 cmp r2, #0 800f9ea: f040 8090 bne.w 800fb0e { case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ { sysclockfreq = HSI_VALUE; 800f9ee: 4b4d ldr r3, [pc, #308] ; (800fb24 ) 800f9f0: 613b str r3, [r7, #16] break; 800f9f2: e08f b.n 800fb14 } case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */ { sysclockfreq = HSE_VALUE; 800f9f4: 4b4c ldr r3, [pc, #304] ; (800fb28 ) 800f9f6: 613b str r3, [r7, #16] break; 800f9f8: e08c b.n 800fb14 } case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock source */ { /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN SYSCLK = PLL_VCO / PLLP */ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; 800f9fa: 4a49 ldr r2, [pc, #292] ; (800fb20 ) 800f9fc: 6852 ldr r2, [r2, #4] 800f9fe: f002 023f and.w r2, r2, #63 ; 0x3f 800fa02: 60fa str r2, [r7, #12] if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI) 800fa04: 4a46 ldr r2, [pc, #280] ; (800fb20 ) 800fa06: 6852 ldr r2, [r2, #4] 800fa08: f402 0280 and.w r2, r2, #4194304 ; 0x400000 800fa0c: 2a00 cmp r2, #0 800fa0e: d023 beq.n 800fa58 { /* HSE used as PLL clock source */ pllvco = (uint32_t)((((uint64_t) HSE_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); 800fa10: 4b43 ldr r3, [pc, #268] ; (800fb20 ) 800fa12: 685b ldr r3, [r3, #4] 800fa14: 099b lsrs r3, r3, #6 800fa16: f04f 0400 mov.w r4, #0 800fa1a: f240 11ff movw r1, #511 ; 0x1ff 800fa1e: f04f 0200 mov.w r2, #0 800fa22: ea03 0301 and.w r3, r3, r1 800fa26: ea04 0402 and.w r4, r4, r2 800fa2a: 4a3f ldr r2, [pc, #252] ; (800fb28 ) 800fa2c: fb02 f104 mul.w r1, r2, r4 800fa30: 2200 movs r2, #0 800fa32: fb02 f203 mul.w r2, r2, r3 800fa36: 440a add r2, r1 800fa38: 493b ldr r1, [pc, #236] ; (800fb28 ) 800fa3a: fba3 0101 umull r0, r1, r3, r1 800fa3e: 1853 adds r3, r2, r1 800fa40: 4619 mov r1, r3 800fa42: 68fb ldr r3, [r7, #12] 800fa44: f04f 0400 mov.w r4, #0 800fa48: 461a mov r2, r3 800fa4a: 4623 mov r3, r4 800fa4c: f7f0 fbfc bl 8000248 <__aeabi_uldivmod> 800fa50: 4603 mov r3, r0 800fa52: 460c mov r4, r1 800fa54: 617b str r3, [r7, #20] 800fa56: e04c b.n 800faf2 } else { /* HSI used as PLL clock source */ pllvco = (uint32_t)((((uint64_t) HSI_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); 800fa58: 4a31 ldr r2, [pc, #196] ; (800fb20 ) 800fa5a: 6852 ldr r2, [r2, #4] 800fa5c: 0992 lsrs r2, r2, #6 800fa5e: 4611 mov r1, r2 800fa60: f04f 0200 mov.w r2, #0 800fa64: f240 15ff movw r5, #511 ; 0x1ff 800fa68: f04f 0600 mov.w r6, #0 800fa6c: ea05 0501 and.w r5, r5, r1 800fa70: ea06 0602 and.w r6, r6, r2 800fa74: 4629 mov r1, r5 800fa76: 4632 mov r2, r6 800fa78: ea4f 1b42 mov.w fp, r2, lsl #5 800fa7c: ea4b 6bd1 orr.w fp, fp, r1, lsr #27 800fa80: ea4f 1a41 mov.w sl, r1, lsl #5 800fa84: 4651 mov r1, sl 800fa86: 465a mov r2, fp 800fa88: 46aa mov sl, r5 800fa8a: 46b3 mov fp, r6 800fa8c: 4655 mov r5, sl 800fa8e: 465e mov r6, fp 800fa90: 1b4d subs r5, r1, r5 800fa92: eb62 0606 sbc.w r6, r2, r6 800fa96: 4629 mov r1, r5 800fa98: 4632 mov r2, r6 800fa9a: 0194 lsls r4, r2, #6 800fa9c: ea44 6491 orr.w r4, r4, r1, lsr #26 800faa0: 018b lsls r3, r1, #6 800faa2: 1a5b subs r3, r3, r1 800faa4: eb64 0402 sbc.w r4, r4, r2 800faa8: ea4f 09c4 mov.w r9, r4, lsl #3 800faac: ea49 7953 orr.w r9, r9, r3, lsr #29 800fab0: ea4f 08c3 mov.w r8, r3, lsl #3 800fab4: 4643 mov r3, r8 800fab6: 464c mov r4, r9 800fab8: 4655 mov r5, sl 800faba: 465e mov r6, fp 800fabc: 18ed adds r5, r5, r3 800fabe: eb46 0604 adc.w r6, r6, r4 800fac2: 462b mov r3, r5 800fac4: 4634 mov r4, r6 800fac6: 02a2 lsls r2, r4, #10 800fac8: 607a str r2, [r7, #4] 800faca: 687a ldr r2, [r7, #4] 800facc: ea42 5293 orr.w r2, r2, r3, lsr #22 800fad0: 607a str r2, [r7, #4] 800fad2: 029b lsls r3, r3, #10 800fad4: 603b str r3, [r7, #0] 800fad6: e897 0018 ldmia.w r7, {r3, r4} 800fada: 4618 mov r0, r3 800fadc: 4621 mov r1, r4 800fade: 68fb ldr r3, [r7, #12] 800fae0: f04f 0400 mov.w r4, #0 800fae4: 461a mov r2, r3 800fae6: 4623 mov r3, r4 800fae8: f7f0 fbae bl 8000248 <__aeabi_uldivmod> 800faec: 4603 mov r3, r0 800faee: 460c mov r4, r1 800faf0: 617b str r3, [r7, #20] } pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1) * 2); 800faf2: 4b0b ldr r3, [pc, #44] ; (800fb20 ) 800faf4: 685b ldr r3, [r3, #4] 800faf6: 0c1b lsrs r3, r3, #16 800faf8: f003 0303 and.w r3, r3, #3 800fafc: 3301 adds r3, #1 800fafe: 005b lsls r3, r3, #1 800fb00: 60bb str r3, [r7, #8] sysclockfreq = pllvco / pllp; 800fb02: 697a ldr r2, [r7, #20] 800fb04: 68bb ldr r3, [r7, #8] 800fb06: fbb2 f3f3 udiv r3, r2, r3 800fb0a: 613b str r3, [r7, #16] break; 800fb0c: e002 b.n 800fb14 } default: { sysclockfreq = HSI_VALUE; 800fb0e: 4b05 ldr r3, [pc, #20] ; (800fb24 ) 800fb10: 613b str r3, [r7, #16] break; 800fb12: bf00 nop } } return sysclockfreq; 800fb14: 693b ldr r3, [r7, #16] } 800fb16: 4618 mov r0, r3 800fb18: 371c adds r7, #28 800fb1a: 46bd mov sp, r7 800fb1c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 800fb20: 40023800 .word 0x40023800 800fb24: 00f42400 .word 0x00f42400 800fb28: 017d7840 .word 0x017d7840 0800fb2c : * right HCLK value. Otherwise, any configuration based on this function will be incorrect. * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. * @retval HCLK frequency */ uint32_t HAL_RCC_GetHCLKFreq(void) { 800fb2c: b480 push {r7} 800fb2e: af00 add r7, sp, #0 return SystemCoreClock; 800fb30: 4b03 ldr r3, [pc, #12] ; (800fb40 ) 800fb32: 681b ldr r3, [r3, #0] } 800fb34: 4618 mov r0, r3 800fb36: 46bd mov sp, r7 800fb38: f85d 7b04 ldr.w r7, [sp], #4 800fb3c: 4770 bx lr 800fb3e: bf00 nop 800fb40: 20020214 .word 0x20020214 0800fb44 : * @note Each time PCLK1 changes, this function must be called to update the * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK1 frequency */ uint32_t HAL_RCC_GetPCLK1Freq(void) { 800fb44: b580 push {r7, lr} 800fb46: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]); 800fb48: f7ff fff0 bl 800fb2c 800fb4c: 4601 mov r1, r0 800fb4e: 4b05 ldr r3, [pc, #20] ; (800fb64 ) 800fb50: 689b ldr r3, [r3, #8] 800fb52: 0a9b lsrs r3, r3, #10 800fb54: f003 0307 and.w r3, r3, #7 800fb58: 4a03 ldr r2, [pc, #12] ; (800fb68 ) 800fb5a: 5cd3 ldrb r3, [r2, r3] 800fb5c: fa21 f303 lsr.w r3, r1, r3 } 800fb60: 4618 mov r0, r3 800fb62: bd80 pop {r7, pc} 800fb64: 40023800 .word 0x40023800 800fb68: 08015594 .word 0x08015594 0800fb6c : * @note Each time PCLK2 changes, this function must be called to update the * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK2 frequency */ uint32_t HAL_RCC_GetPCLK2Freq(void) { 800fb6c: b580 push {r7, lr} 800fb6e: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]); 800fb70: f7ff ffdc bl 800fb2c 800fb74: 4601 mov r1, r0 800fb76: 4b05 ldr r3, [pc, #20] ; (800fb8c ) 800fb78: 689b ldr r3, [r3, #8] 800fb7a: 0b5b lsrs r3, r3, #13 800fb7c: f003 0307 and.w r3, r3, #7 800fb80: 4a03 ldr r2, [pc, #12] ; (800fb90 ) 800fb82: 5cd3 ldrb r3, [r2, r3] 800fb84: fa21 f303 lsr.w r3, r1, r3 } 800fb88: 4618 mov r0, r3 800fb8a: bd80 pop {r7, pc} 800fb8c: 40023800 .word 0x40023800 800fb90: 08015594 .word 0x08015594 0800fb94 : * the backup registers) are set to their reset values. * * @retval HAL status */ HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) { 800fb94: b580 push {r7, lr} 800fb96: b088 sub sp, #32 800fb98: af00 add r7, sp, #0 800fb9a: 6078 str r0, [r7, #4] uint32_t tickstart = 0; 800fb9c: 2300 movs r3, #0 800fb9e: 617b str r3, [r7, #20] uint32_t tmpreg0 = 0; 800fba0: 2300 movs r3, #0 800fba2: 613b str r3, [r7, #16] uint32_t tmpreg1 = 0; 800fba4: 2300 movs r3, #0 800fba6: 60fb str r3, [r7, #12] uint32_t plli2sused = 0; 800fba8: 2300 movs r3, #0 800fbaa: 61fb str r3, [r7, #28] uint32_t pllsaiused = 0; 800fbac: 2300 movs r3, #0 800fbae: 61bb str r3, [r7, #24] /* Check the parameters */ assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); /*----------------------------------- I2S configuration ----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == (RCC_PERIPHCLK_I2S)) 800fbb0: 687b ldr r3, [r7, #4] 800fbb2: 681b ldr r3, [r3, #0] 800fbb4: f003 0301 and.w r3, r3, #1 800fbb8: 2b00 cmp r3, #0 800fbba: d012 beq.n 800fbe2 { /* Check the parameters */ assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); /* Configure I2S Clock source */ __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); 800fbbc: 4a69 ldr r2, [pc, #420] ; (800fd64 ) 800fbbe: 4b69 ldr r3, [pc, #420] ; (800fd64 ) 800fbc0: 689b ldr r3, [r3, #8] 800fbc2: f423 0300 bic.w r3, r3, #8388608 ; 0x800000 800fbc6: 6093 str r3, [r2, #8] 800fbc8: 4966 ldr r1, [pc, #408] ; (800fd64 ) 800fbca: 4b66 ldr r3, [pc, #408] ; (800fd64 ) 800fbcc: 689a ldr r2, [r3, #8] 800fbce: 687b ldr r3, [r7, #4] 800fbd0: 6b5b ldr r3, [r3, #52] ; 0x34 800fbd2: 4313 orrs r3, r2 800fbd4: 608b str r3, [r1, #8] /* Enable the PLLI2S when it's used as clock source for I2S */ if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S) 800fbd6: 687b ldr r3, [r7, #4] 800fbd8: 6b5b ldr r3, [r3, #52] ; 0x34 800fbda: 2b00 cmp r3, #0 800fbdc: d101 bne.n 800fbe2 { plli2sused = 1; 800fbde: 2301 movs r3, #1 800fbe0: 61fb str r3, [r7, #28] } } /*------------------------------------ SAI1 configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1)) 800fbe2: 687b ldr r3, [r7, #4] 800fbe4: 681b ldr r3, [r3, #0] 800fbe6: f403 2300 and.w r3, r3, #524288 ; 0x80000 800fbea: 2b00 cmp r3, #0 800fbec: d017 beq.n 800fc1e { /* Check the parameters */ assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); /* Configure SAI1 Clock source */ __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); 800fbee: 495d ldr r1, [pc, #372] ; (800fd64 ) 800fbf0: 4b5c ldr r3, [pc, #368] ; (800fd64 ) 800fbf2: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 800fbf6: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 800fbfa: 687b ldr r3, [r7, #4] 800fbfc: 6bdb ldr r3, [r3, #60] ; 0x3c 800fbfe: 4313 orrs r3, r2 800fc00: f8c1 308c str.w r3, [r1, #140] ; 0x8c /* Enable the PLLI2S when it's used as clock source for SAI */ if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S) 800fc04: 687b ldr r3, [r7, #4] 800fc06: 6bdb ldr r3, [r3, #60] ; 0x3c 800fc08: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 800fc0c: d101 bne.n 800fc12 { plli2sused = 1; 800fc0e: 2301 movs r3, #1 800fc10: 61fb str r3, [r7, #28] } /* Enable the PLLSAI when it's used as clock source for SAI */ if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI) 800fc12: 687b ldr r3, [r7, #4] 800fc14: 6bdb ldr r3, [r3, #60] ; 0x3c 800fc16: 2b00 cmp r3, #0 800fc18: d101 bne.n 800fc1e { pllsaiused = 1; 800fc1a: 2301 movs r3, #1 800fc1c: 61bb str r3, [r7, #24] } } /*------------------------------------ SAI2 configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2)) 800fc1e: 687b ldr r3, [r7, #4] 800fc20: 681b ldr r3, [r3, #0] 800fc22: f403 1380 and.w r3, r3, #1048576 ; 0x100000 800fc26: 2b00 cmp r3, #0 800fc28: d017 beq.n 800fc5a { /* Check the parameters */ assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection)); /* Configure SAI2 Clock source */ __HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection); 800fc2a: 494e ldr r1, [pc, #312] ; (800fd64 ) 800fc2c: 4b4d ldr r3, [pc, #308] ; (800fd64 ) 800fc2e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 800fc32: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 800fc36: 687b ldr r3, [r7, #4] 800fc38: 6c1b ldr r3, [r3, #64] ; 0x40 800fc3a: 4313 orrs r3, r2 800fc3c: f8c1 308c str.w r3, [r1, #140] ; 0x8c /* Enable the PLLI2S when it's used as clock source for SAI */ if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S) 800fc40: 687b ldr r3, [r7, #4] 800fc42: 6c1b ldr r3, [r3, #64] ; 0x40 800fc44: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 800fc48: d101 bne.n 800fc4e { plli2sused = 1; 800fc4a: 2301 movs r3, #1 800fc4c: 61fb str r3, [r7, #28] } /* Enable the PLLSAI when it's used as clock source for SAI */ if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI) 800fc4e: 687b ldr r3, [r7, #4] 800fc50: 6c1b ldr r3, [r3, #64] ; 0x40 800fc52: 2b00 cmp r3, #0 800fc54: d101 bne.n 800fc5a { pllsaiused = 1; 800fc56: 2301 movs r3, #1 800fc58: 61bb str r3, [r7, #24] } } /*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) 800fc5a: 687b ldr r3, [r7, #4] 800fc5c: 681b ldr r3, [r3, #0] 800fc5e: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 800fc62: 2b00 cmp r3, #0 800fc64: d001 beq.n 800fc6a { plli2sused = 1; 800fc66: 2301 movs r3, #1 800fc68: 61fb str r3, [r7, #28] } /*------------------------------------ RTC configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC)) 800fc6a: 687b ldr r3, [r7, #4] 800fc6c: 681b ldr r3, [r3, #0] 800fc6e: f003 0320 and.w r3, r3, #32 800fc72: 2b00 cmp r3, #0 800fc74: f000 808b beq.w 800fd8e { /* Check for RTC Parameters used to output RTCCLK */ assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); /* Enable Power Clock*/ __HAL_RCC_PWR_CLK_ENABLE(); 800fc78: 4a3a ldr r2, [pc, #232] ; (800fd64 ) 800fc7a: 4b3a ldr r3, [pc, #232] ; (800fd64 ) 800fc7c: 6c1b ldr r3, [r3, #64] ; 0x40 800fc7e: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 800fc82: 6413 str r3, [r2, #64] ; 0x40 800fc84: 4b37 ldr r3, [pc, #220] ; (800fd64 ) 800fc86: 6c1b ldr r3, [r3, #64] ; 0x40 800fc88: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 800fc8c: 60bb str r3, [r7, #8] 800fc8e: 68bb ldr r3, [r7, #8] /* Enable write access to Backup domain */ PWR->CR1 |= PWR_CR1_DBP; 800fc90: 4a35 ldr r2, [pc, #212] ; (800fd68 ) 800fc92: 4b35 ldr r3, [pc, #212] ; (800fd68 ) 800fc94: 681b ldr r3, [r3, #0] 800fc96: f443 7380 orr.w r3, r3, #256 ; 0x100 800fc9a: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 800fc9c: f7fd ff02 bl 800daa4 800fca0: 6178 str r0, [r7, #20] /* Wait for Backup domain Write protection disable */ while((PWR->CR1 & PWR_CR1_DBP) == RESET) 800fca2: e008 b.n 800fcb6 { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) 800fca4: f7fd fefe bl 800daa4 800fca8: 4602 mov r2, r0 800fcaa: 697b ldr r3, [r7, #20] 800fcac: 1ad3 subs r3, r2, r3 800fcae: 2b64 cmp r3, #100 ; 0x64 800fcb0: d901 bls.n 800fcb6 { return HAL_TIMEOUT; 800fcb2: 2303 movs r3, #3 800fcb4: e38d b.n 80103d2 while((PWR->CR1 & PWR_CR1_DBP) == RESET) 800fcb6: 4b2c ldr r3, [pc, #176] ; (800fd68 ) 800fcb8: 681b ldr r3, [r3, #0] 800fcba: f403 7380 and.w r3, r3, #256 ; 0x100 800fcbe: 2b00 cmp r3, #0 800fcc0: d0f0 beq.n 800fca4 } } /* Reset the Backup domain only if the RTC Clock source selection is modified */ tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL); 800fcc2: 4b28 ldr r3, [pc, #160] ; (800fd64 ) 800fcc4: 6f1b ldr r3, [r3, #112] ; 0x70 800fcc6: f403 7340 and.w r3, r3, #768 ; 0x300 800fcca: 613b str r3, [r7, #16] if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL))) 800fccc: 693b ldr r3, [r7, #16] 800fcce: 2b00 cmp r3, #0 800fcd0: d035 beq.n 800fd3e 800fcd2: 687b ldr r3, [r7, #4] 800fcd4: 6b1b ldr r3, [r3, #48] ; 0x30 800fcd6: f403 7240 and.w r2, r3, #768 ; 0x300 800fcda: 693b ldr r3, [r7, #16] 800fcdc: 429a cmp r2, r3 800fcde: d02e beq.n 800fd3e { /* Store the content of BDCR register before the reset of Backup Domain */ tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL)); 800fce0: 4b20 ldr r3, [pc, #128] ; (800fd64 ) 800fce2: 6f1b ldr r3, [r3, #112] ; 0x70 800fce4: f423 7340 bic.w r3, r3, #768 ; 0x300 800fce8: 613b str r3, [r7, #16] /* RTC Clock selection can be changed only if the Backup Domain is reset */ __HAL_RCC_BACKUPRESET_FORCE(); 800fcea: 4a1e ldr r2, [pc, #120] ; (800fd64 ) 800fcec: 4b1d ldr r3, [pc, #116] ; (800fd64 ) 800fcee: 6f1b ldr r3, [r3, #112] ; 0x70 800fcf0: f443 3380 orr.w r3, r3, #65536 ; 0x10000 800fcf4: 6713 str r3, [r2, #112] ; 0x70 __HAL_RCC_BACKUPRESET_RELEASE(); 800fcf6: 4a1b ldr r2, [pc, #108] ; (800fd64 ) 800fcf8: 4b1a ldr r3, [pc, #104] ; (800fd64 ) 800fcfa: 6f1b ldr r3, [r3, #112] ; 0x70 800fcfc: f423 3380 bic.w r3, r3, #65536 ; 0x10000 800fd00: 6713 str r3, [r2, #112] ; 0x70 /* Restore the Content of BDCR register */ RCC->BDCR = tmpreg0; 800fd02: 4a18 ldr r2, [pc, #96] ; (800fd64 ) 800fd04: 693b ldr r3, [r7, #16] 800fd06: 6713 str r3, [r2, #112] ; 0x70 /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ if (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSEON)) 800fd08: 4b16 ldr r3, [pc, #88] ; (800fd64 ) 800fd0a: 6f1b ldr r3, [r3, #112] ; 0x70 800fd0c: f003 0301 and.w r3, r3, #1 800fd10: 2b01 cmp r3, #1 800fd12: d114 bne.n 800fd3e { /* Get Start Tick*/ tickstart = HAL_GetTick(); 800fd14: f7fd fec6 bl 800daa4 800fd18: 6178 str r0, [r7, #20] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 800fd1a: e00a b.n 800fd32 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) 800fd1c: f7fd fec2 bl 800daa4 800fd20: 4602 mov r2, r0 800fd22: 697b ldr r3, [r7, #20] 800fd24: 1ad3 subs r3, r2, r3 800fd26: f241 3288 movw r2, #5000 ; 0x1388 800fd2a: 4293 cmp r3, r2 800fd2c: d901 bls.n 800fd32 { return HAL_TIMEOUT; 800fd2e: 2303 movs r3, #3 800fd30: e34f b.n 80103d2 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) 800fd32: 4b0c ldr r3, [pc, #48] ; (800fd64 ) 800fd34: 6f1b ldr r3, [r3, #112] ; 0x70 800fd36: f003 0302 and.w r3, r3, #2 800fd3a: 2b00 cmp r3, #0 800fd3c: d0ee beq.n 800fd1c } } } } __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); 800fd3e: 687b ldr r3, [r7, #4] 800fd40: 6b1b ldr r3, [r3, #48] ; 0x30 800fd42: f403 7340 and.w r3, r3, #768 ; 0x300 800fd46: f5b3 7f40 cmp.w r3, #768 ; 0x300 800fd4a: d111 bne.n 800fd70 800fd4c: 4805 ldr r0, [pc, #20] ; (800fd64 ) 800fd4e: 4b05 ldr r3, [pc, #20] ; (800fd64 ) 800fd50: 689b ldr r3, [r3, #8] 800fd52: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000 800fd56: 687b ldr r3, [r7, #4] 800fd58: 6b19 ldr r1, [r3, #48] ; 0x30 800fd5a: 4b04 ldr r3, [pc, #16] ; (800fd6c ) 800fd5c: 400b ands r3, r1 800fd5e: 4313 orrs r3, r2 800fd60: 6083 str r3, [r0, #8] 800fd62: e00b b.n 800fd7c 800fd64: 40023800 .word 0x40023800 800fd68: 40007000 .word 0x40007000 800fd6c: 0ffffcff .word 0x0ffffcff 800fd70: 4ab2 ldr r2, [pc, #712] ; (801003c ) 800fd72: 4bb2 ldr r3, [pc, #712] ; (801003c ) 800fd74: 689b ldr r3, [r3, #8] 800fd76: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000 800fd7a: 6093 str r3, [r2, #8] 800fd7c: 49af ldr r1, [pc, #700] ; (801003c ) 800fd7e: 4baf ldr r3, [pc, #700] ; (801003c ) 800fd80: 6f1a ldr r2, [r3, #112] ; 0x70 800fd82: 687b ldr r3, [r7, #4] 800fd84: 6b1b ldr r3, [r3, #48] ; 0x30 800fd86: f3c3 030b ubfx r3, r3, #0, #12 800fd8a: 4313 orrs r3, r2 800fd8c: 670b str r3, [r1, #112] ; 0x70 } /*------------------------------------ TIM configuration --------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM)) 800fd8e: 687b ldr r3, [r7, #4] 800fd90: 681b ldr r3, [r3, #0] 800fd92: f003 0310 and.w r3, r3, #16 800fd96: 2b00 cmp r3, #0 800fd98: d010 beq.n 800fdbc { /* Check the parameters */ assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection)); /* Configure Timer Prescaler */ __HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection); 800fd9a: 4aa8 ldr r2, [pc, #672] ; (801003c ) 800fd9c: 4ba7 ldr r3, [pc, #668] ; (801003c ) 800fd9e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 800fda2: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 800fda6: f8c2 308c str.w r3, [r2, #140] ; 0x8c 800fdaa: 49a4 ldr r1, [pc, #656] ; (801003c ) 800fdac: 4ba3 ldr r3, [pc, #652] ; (801003c ) 800fdae: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c 800fdb2: 687b ldr r3, [r7, #4] 800fdb4: 6b9b ldr r3, [r3, #56] ; 0x38 800fdb6: 4313 orrs r3, r2 800fdb8: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*-------------------------------------- I2C1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) 800fdbc: 687b ldr r3, [r7, #4] 800fdbe: 681b ldr r3, [r3, #0] 800fdc0: f403 4380 and.w r3, r3, #16384 ; 0x4000 800fdc4: 2b00 cmp r3, #0 800fdc6: d00a beq.n 800fdde { /* Check the parameters */ assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); /* Configure the I2C1 clock source */ __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); 800fdc8: 499c ldr r1, [pc, #624] ; (801003c ) 800fdca: 4b9c ldr r3, [pc, #624] ; (801003c ) 800fdcc: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fdd0: f423 3240 bic.w r2, r3, #196608 ; 0x30000 800fdd4: 687b ldr r3, [r7, #4] 800fdd6: 6e5b ldr r3, [r3, #100] ; 0x64 800fdd8: 4313 orrs r3, r2 800fdda: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C2 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) 800fdde: 687b ldr r3, [r7, #4] 800fde0: 681b ldr r3, [r3, #0] 800fde2: f403 4300 and.w r3, r3, #32768 ; 0x8000 800fde6: 2b00 cmp r3, #0 800fde8: d00a beq.n 800fe00 { /* Check the parameters */ assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); /* Configure the I2C2 clock source */ __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); 800fdea: 4994 ldr r1, [pc, #592] ; (801003c ) 800fdec: 4b93 ldr r3, [pc, #588] ; (801003c ) 800fdee: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fdf2: f423 2240 bic.w r2, r3, #786432 ; 0xc0000 800fdf6: 687b ldr r3, [r7, #4] 800fdf8: 6e9b ldr r3, [r3, #104] ; 0x68 800fdfa: 4313 orrs r3, r2 800fdfc: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C3 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) 800fe00: 687b ldr r3, [r7, #4] 800fe02: 681b ldr r3, [r3, #0] 800fe04: f403 3380 and.w r3, r3, #65536 ; 0x10000 800fe08: 2b00 cmp r3, #0 800fe0a: d00a beq.n 800fe22 { /* Check the parameters */ assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); /* Configure the I2C3 clock source */ __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); 800fe0c: 498b ldr r1, [pc, #556] ; (801003c ) 800fe0e: 4b8b ldr r3, [pc, #556] ; (801003c ) 800fe10: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fe14: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 800fe18: 687b ldr r3, [r7, #4] 800fe1a: 6edb ldr r3, [r3, #108] ; 0x6c 800fe1c: 4313 orrs r3, r2 800fe1e: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- I2C4 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) 800fe22: 687b ldr r3, [r7, #4] 800fe24: 681b ldr r3, [r3, #0] 800fe26: f403 3300 and.w r3, r3, #131072 ; 0x20000 800fe2a: 2b00 cmp r3, #0 800fe2c: d00a beq.n 800fe44 { /* Check the parameters */ assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); /* Configure the I2C4 clock source */ __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); 800fe2e: 4983 ldr r1, [pc, #524] ; (801003c ) 800fe30: 4b82 ldr r3, [pc, #520] ; (801003c ) 800fe32: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fe36: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 800fe3a: 687b ldr r3, [r7, #4] 800fe3c: 6f1b ldr r3, [r3, #112] ; 0x70 800fe3e: 4313 orrs r3, r2 800fe40: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) 800fe44: 687b ldr r3, [r7, #4] 800fe46: 681b ldr r3, [r3, #0] 800fe48: f003 0340 and.w r3, r3, #64 ; 0x40 800fe4c: 2b00 cmp r3, #0 800fe4e: d00a beq.n 800fe66 { /* Check the parameters */ assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); /* Configure the USART1 clock source */ __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); 800fe50: 497a ldr r1, [pc, #488] ; (801003c ) 800fe52: 4b7a ldr r3, [pc, #488] ; (801003c ) 800fe54: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fe58: f023 0203 bic.w r2, r3, #3 800fe5c: 687b ldr r3, [r7, #4] 800fe5e: 6c5b ldr r3, [r3, #68] ; 0x44 800fe60: 4313 orrs r3, r2 800fe62: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART2 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) 800fe66: 687b ldr r3, [r7, #4] 800fe68: 681b ldr r3, [r3, #0] 800fe6a: f003 0380 and.w r3, r3, #128 ; 0x80 800fe6e: 2b00 cmp r3, #0 800fe70: d00a beq.n 800fe88 { /* Check the parameters */ assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); /* Configure the USART2 clock source */ __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); 800fe72: 4972 ldr r1, [pc, #456] ; (801003c ) 800fe74: 4b71 ldr r3, [pc, #452] ; (801003c ) 800fe76: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fe7a: f023 020c bic.w r2, r3, #12 800fe7e: 687b ldr r3, [r7, #4] 800fe80: 6c9b ldr r3, [r3, #72] ; 0x48 800fe82: 4313 orrs r3, r2 800fe84: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART3 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) 800fe88: 687b ldr r3, [r7, #4] 800fe8a: 681b ldr r3, [r3, #0] 800fe8c: f403 7380 and.w r3, r3, #256 ; 0x100 800fe90: 2b00 cmp r3, #0 800fe92: d00a beq.n 800feaa { /* Check the parameters */ assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); /* Configure the USART3 clock source */ __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); 800fe94: 4969 ldr r1, [pc, #420] ; (801003c ) 800fe96: 4b69 ldr r3, [pc, #420] ; (801003c ) 800fe98: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fe9c: f023 0230 bic.w r2, r3, #48 ; 0x30 800fea0: 687b ldr r3, [r7, #4] 800fea2: 6cdb ldr r3, [r3, #76] ; 0x4c 800fea4: 4313 orrs r3, r2 800fea6: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART4 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) 800feaa: 687b ldr r3, [r7, #4] 800feac: 681b ldr r3, [r3, #0] 800feae: f403 7300 and.w r3, r3, #512 ; 0x200 800feb2: 2b00 cmp r3, #0 800feb4: d00a beq.n 800fecc { /* Check the parameters */ assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); /* Configure the UART4 clock source */ __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); 800feb6: 4961 ldr r1, [pc, #388] ; (801003c ) 800feb8: 4b60 ldr r3, [pc, #384] ; (801003c ) 800feba: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800febe: f023 02c0 bic.w r2, r3, #192 ; 0xc0 800fec2: 687b ldr r3, [r7, #4] 800fec4: 6d1b ldr r3, [r3, #80] ; 0x50 800fec6: 4313 orrs r3, r2 800fec8: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART5 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) 800fecc: 687b ldr r3, [r7, #4] 800fece: 681b ldr r3, [r3, #0] 800fed0: f403 6380 and.w r3, r3, #1024 ; 0x400 800fed4: 2b00 cmp r3, #0 800fed6: d00a beq.n 800feee { /* Check the parameters */ assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); /* Configure the UART5 clock source */ __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); 800fed8: 4958 ldr r1, [pc, #352] ; (801003c ) 800feda: 4b58 ldr r3, [pc, #352] ; (801003c ) 800fedc: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800fee0: f423 7240 bic.w r2, r3, #768 ; 0x300 800fee4: 687b ldr r3, [r7, #4] 800fee6: 6d5b ldr r3, [r3, #84] ; 0x54 800fee8: 4313 orrs r3, r2 800feea: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- USART6 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6) 800feee: 687b ldr r3, [r7, #4] 800fef0: 681b ldr r3, [r3, #0] 800fef2: f403 6300 and.w r3, r3, #2048 ; 0x800 800fef6: 2b00 cmp r3, #0 800fef8: d00a beq.n 800ff10 { /* Check the parameters */ assert_param(IS_RCC_USART6CLKSOURCE(PeriphClkInit->Usart6ClockSelection)); /* Configure the USART6 clock source */ __HAL_RCC_USART6_CONFIG(PeriphClkInit->Usart6ClockSelection); 800fefa: 4950 ldr r1, [pc, #320] ; (801003c ) 800fefc: 4b4f ldr r3, [pc, #316] ; (801003c ) 800fefe: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800ff02: f423 6240 bic.w r2, r3, #3072 ; 0xc00 800ff06: 687b ldr r3, [r7, #4] 800ff08: 6d9b ldr r3, [r3, #88] ; 0x58 800ff0a: 4313 orrs r3, r2 800ff0c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART7 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7) 800ff10: 687b ldr r3, [r7, #4] 800ff12: 681b ldr r3, [r3, #0] 800ff14: f403 5380 and.w r3, r3, #4096 ; 0x1000 800ff18: 2b00 cmp r3, #0 800ff1a: d00a beq.n 800ff32 { /* Check the parameters */ assert_param(IS_RCC_UART7CLKSOURCE(PeriphClkInit->Uart7ClockSelection)); /* Configure the UART7 clock source */ __HAL_RCC_UART7_CONFIG(PeriphClkInit->Uart7ClockSelection); 800ff1c: 4947 ldr r1, [pc, #284] ; (801003c ) 800ff1e: 4b47 ldr r3, [pc, #284] ; (801003c ) 800ff20: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800ff24: f423 5240 bic.w r2, r3, #12288 ; 0x3000 800ff28: 687b ldr r3, [r7, #4] 800ff2a: 6ddb ldr r3, [r3, #92] ; 0x5c 800ff2c: 4313 orrs r3, r2 800ff2e: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- UART8 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8) 800ff32: 687b ldr r3, [r7, #4] 800ff34: 681b ldr r3, [r3, #0] 800ff36: f403 5300 and.w r3, r3, #8192 ; 0x2000 800ff3a: 2b00 cmp r3, #0 800ff3c: d00a beq.n 800ff54 { /* Check the parameters */ assert_param(IS_RCC_UART8CLKSOURCE(PeriphClkInit->Uart8ClockSelection)); /* Configure the UART8 clock source */ __HAL_RCC_UART8_CONFIG(PeriphClkInit->Uart8ClockSelection); 800ff3e: 493f ldr r1, [pc, #252] ; (801003c ) 800ff40: 4b3e ldr r3, [pc, #248] ; (801003c ) 800ff42: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800ff46: f423 4240 bic.w r2, r3, #49152 ; 0xc000 800ff4a: 687b ldr r3, [r7, #4] 800ff4c: 6e1b ldr r3, [r3, #96] ; 0x60 800ff4e: 4313 orrs r3, r2 800ff50: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*--------------------------------------- CEC Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC) 800ff54: 687b ldr r3, [r7, #4] 800ff56: 681b ldr r3, [r3, #0] 800ff58: f403 0380 and.w r3, r3, #4194304 ; 0x400000 800ff5c: 2b00 cmp r3, #0 800ff5e: d00a beq.n 800ff76 { /* Check the parameters */ assert_param(IS_RCC_CECCLKSOURCE(PeriphClkInit->CecClockSelection)); /* Configure the CEC clock source */ __HAL_RCC_CEC_CONFIG(PeriphClkInit->CecClockSelection); 800ff60: 4936 ldr r1, [pc, #216] ; (801003c ) 800ff62: 4b36 ldr r3, [pc, #216] ; (801003c ) 800ff64: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800ff68: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 800ff6c: 687b ldr r3, [r7, #4] 800ff6e: 6f9b ldr r3, [r3, #120] ; 0x78 800ff70: 4313 orrs r3, r2 800ff72: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*-------------------------------------- CK48 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) 800ff76: 687b ldr r3, [r7, #4] 800ff78: 681b ldr r3, [r3, #0] 800ff7a: f403 1300 and.w r3, r3, #2097152 ; 0x200000 800ff7e: 2b00 cmp r3, #0 800ff80: d011 beq.n 800ffa6 { /* Check the parameters */ assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection)); /* Configure the CLK48 source */ __HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection); 800ff82: 492e ldr r1, [pc, #184] ; (801003c ) 800ff84: 4b2d ldr r3, [pc, #180] ; (801003c ) 800ff86: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800ff8a: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000 800ff8e: 687b ldr r3, [r7, #4] 800ff90: 6fdb ldr r3, [r3, #124] ; 0x7c 800ff92: 4313 orrs r3, r2 800ff94: f8c1 3090 str.w r3, [r1, #144] ; 0x90 /* Enable the PLLSAI when it's used as clock source for CK48 */ if(PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP) 800ff98: 687b ldr r3, [r7, #4] 800ff9a: 6fdb ldr r3, [r3, #124] ; 0x7c 800ff9c: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 800ffa0: d101 bne.n 800ffa6 { pllsaiused = 1; 800ffa2: 2301 movs r3, #1 800ffa4: 61bb str r3, [r7, #24] } } /*-------------------------------------- LTDC Configuration -----------------------------------*/ #if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == RCC_PERIPHCLK_LTDC) 800ffa6: 687b ldr r3, [r7, #4] 800ffa8: 681b ldr r3, [r3, #0] 800ffaa: f003 0308 and.w r3, r3, #8 800ffae: 2b00 cmp r3, #0 800ffb0: d001 beq.n 800ffb6 { pllsaiused = 1; 800ffb2: 2301 movs r3, #1 800ffb4: 61bb str r3, [r7, #24] } #endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ /*-------------------------------------- LPTIM1 Configuration -----------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) 800ffb6: 687b ldr r3, [r7, #4] 800ffb8: 681b ldr r3, [r3, #0] 800ffba: f403 2380 and.w r3, r3, #262144 ; 0x40000 800ffbe: 2b00 cmp r3, #0 800ffc0: d00a beq.n 800ffd8 { /* Check the parameters */ assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection)); /* Configure the LTPIM1 clock source */ __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); 800ffc2: 491e ldr r1, [pc, #120] ; (801003c ) 800ffc4: 4b1d ldr r3, [pc, #116] ; (801003c ) 800ffc6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800ffca: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000 800ffce: 687b ldr r3, [r7, #4] 800ffd0: 6f5b ldr r3, [r3, #116] ; 0x74 800ffd2: 4313 orrs r3, r2 800ffd4: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*------------------------------------- SDMMC1 Configuration ------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1) 800ffd8: 687b ldr r3, [r7, #4] 800ffda: 681b ldr r3, [r3, #0] 800ffdc: f403 0300 and.w r3, r3, #8388608 ; 0x800000 800ffe0: 2b00 cmp r3, #0 800ffe2: d00b beq.n 800fffc { /* Check the parameters */ assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection)); /* Configure the SDMMC1 clock source */ __HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection); 800ffe4: 4915 ldr r1, [pc, #84] ; (801003c ) 800ffe6: 4b15 ldr r3, [pc, #84] ; (801003c ) 800ffe8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 800ffec: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000 800fff0: 687b ldr r3, [r7, #4] 800fff2: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 800fff6: 4313 orrs r3, r2 800fff8: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } #if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) /*------------------------------------- SDMMC2 Configuration ------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC2) == RCC_PERIPHCLK_SDMMC2) 800fffc: 687b ldr r3, [r7, #4] 800fffe: 681b ldr r3, [r3, #0] 8010000: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 8010004: 2b00 cmp r3, #0 8010006: d00b beq.n 8010020 { /* Check the parameters */ assert_param(IS_RCC_SDMMC2CLKSOURCE(PeriphClkInit->Sdmmc2ClockSelection)); /* Configure the SDMMC2 clock source */ __HAL_RCC_SDMMC2_CONFIG(PeriphClkInit->Sdmmc2ClockSelection); 8010008: 490c ldr r1, [pc, #48] ; (801003c ) 801000a: 4b0c ldr r3, [pc, #48] ; (801003c ) 801000c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8010010: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000 8010014: 687b ldr r3, [r7, #4] 8010016: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 801001a: 4313 orrs r3, r2 801001c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 } /*------------------------------------- DFSDM1 Configuration -------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1) 8010020: 687b ldr r3, [r7, #4] 8010022: 681b ldr r3, [r3, #0] 8010024: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 8010028: 2b00 cmp r3, #0 801002a: d00e beq.n 801004a { /* Check the parameters */ assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection)); /* Configure the DFSDM1 interface clock source */ __HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection); 801002c: 4903 ldr r1, [pc, #12] ; (801003c ) 801002e: 4b03 ldr r3, [pc, #12] ; (801003c ) 8010030: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8010034: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000 8010038: 687b ldr r3, [r7, #4] 801003a: e001 b.n 8010040 801003c: 40023800 .word 0x40023800 8010040: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8010044: 4313 orrs r3, r2 8010046: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO) 801004a: 687b ldr r3, [r7, #4] 801004c: 681b ldr r3, [r3, #0] 801004e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 8010052: 2b00 cmp r3, #0 8010054: d00b beq.n 801006e { /* Check the parameters */ assert_param(IS_RCC_DFSDM1AUDIOCLKSOURCE(PeriphClkInit->Dfsdm1AudioClockSelection)); /* Configure the DFSDM interface clock source */ __HAL_RCC_DFSDM1AUDIO_CONFIG(PeriphClkInit->Dfsdm1AudioClockSelection); 8010056: 4981 ldr r1, [pc, #516] ; (801025c ) 8010058: 4b80 ldr r3, [pc, #512] ; (801025c ) 801005a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 801005e: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 8010062: 687b ldr r3, [r7, #4] 8010064: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8010068: 4313 orrs r3, r2 801006a: f8c1 308c str.w r3, [r1, #140] ; 0x8c } #endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */ /*-------------------------------------- PLLI2S Configuration ---------------------------------*/ /* PLLI2S is configured when a peripheral will use it as source clock : SAI1, SAI2, I2S or SPDIF-RX */ if((plli2sused == 1) || ((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)) 801006e: 69fb ldr r3, [r7, #28] 8010070: 2b01 cmp r3, #1 8010072: d006 beq.n 8010082 8010074: 687b ldr r3, [r7, #4] 8010076: 681b ldr r3, [r3, #0] 8010078: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 801007c: 2b00 cmp r3, #0 801007e: f000 80d6 beq.w 801022e { /* Disable the PLLI2S */ __HAL_RCC_PLLI2S_DISABLE(); 8010082: 4a76 ldr r2, [pc, #472] ; (801025c ) 8010084: 4b75 ldr r3, [pc, #468] ; (801025c ) 8010086: 681b ldr r3, [r3, #0] 8010088: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000 801008c: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 801008e: f7fd fd09 bl 800daa4 8010092: 6178 str r0, [r7, #20] /* Wait till PLLI2S is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) 8010094: e008 b.n 80100a8 { if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) 8010096: f7fd fd05 bl 800daa4 801009a: 4602 mov r2, r0 801009c: 697b ldr r3, [r7, #20] 801009e: 1ad3 subs r3, r2, r3 80100a0: 2b64 cmp r3, #100 ; 0x64 80100a2: d901 bls.n 80100a8 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 80100a4: 2303 movs r3, #3 80100a6: e194 b.n 80103d2 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) 80100a8: 4b6c ldr r3, [pc, #432] ; (801025c ) 80100aa: 681b ldr r3, [r3, #0] 80100ac: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 80100b0: 2b00 cmp r3, #0 80100b2: d1f0 bne.n 8010096 /* check for common PLLI2S Parameters */ assert_param(IS_RCC_PLLI2SN_VALUE(PeriphClkInit->PLLI2S.PLLI2SN)); /*----------------- In Case of PLLI2S is selected as source clock for I2S -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) && (PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S))) 80100b4: 687b ldr r3, [r7, #4] 80100b6: 681b ldr r3, [r3, #0] 80100b8: f003 0301 and.w r3, r3, #1 80100bc: 2b00 cmp r3, #0 80100be: d021 beq.n 8010104 80100c0: 687b ldr r3, [r7, #4] 80100c2: 6b5b ldr r3, [r3, #52] ; 0x34 80100c4: 2b00 cmp r3, #0 80100c6: d11d bne.n 8010104 { /* check for Parameters */ assert_param(IS_RCC_PLLI2SR_VALUE(PeriphClkInit->PLLI2S.PLLI2SR)); /* Read PLLI2SP and PLLI2SQ value from PLLI2SCFGR register (this value is not needed for I2S configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); 80100c8: 4b64 ldr r3, [pc, #400] ; (801025c ) 80100ca: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80100ce: 0c1b lsrs r3, r3, #16 80100d0: f003 0303 and.w r3, r3, #3 80100d4: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); 80100d6: 4b61 ldr r3, [pc, #388] ; (801025c ) 80100d8: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80100dc: 0e1b lsrs r3, r3, #24 80100de: f003 030f and.w r3, r3, #15 80100e2: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ /* I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , tmpreg0, tmpreg1, PeriphClkInit->PLLI2S.PLLI2SR); 80100e4: 495d ldr r1, [pc, #372] ; (801025c ) 80100e6: 687b ldr r3, [r7, #4] 80100e8: 685b ldr r3, [r3, #4] 80100ea: 019a lsls r2, r3, #6 80100ec: 693b ldr r3, [r7, #16] 80100ee: 041b lsls r3, r3, #16 80100f0: 431a orrs r2, r3 80100f2: 68fb ldr r3, [r7, #12] 80100f4: 061b lsls r3, r3, #24 80100f6: 431a orrs r2, r3 80100f8: 687b ldr r3, [r7, #4] 80100fa: 689b ldr r3, [r3, #8] 80100fc: 071b lsls r3, r3, #28 80100fe: 4313 orrs r3, r2 8010100: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /*----------------- In Case of PLLI2S is selected as source clock for SAI -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || 8010104: 687b ldr r3, [r7, #4] 8010106: 681b ldr r3, [r3, #0] 8010108: f403 2300 and.w r3, r3, #524288 ; 0x80000 801010c: 2b00 cmp r3, #0 801010e: d004 beq.n 801011a 8010110: 687b ldr r3, [r7, #4] 8010112: 6bdb ldr r3, [r3, #60] ; 0x3c 8010114: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 8010118: d00a beq.n 8010130 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) 801011a: 687b ldr r3, [r7, #4] 801011c: 681b ldr r3, [r3, #0] 801011e: f403 1380 and.w r3, r3, #1048576 ; 0x100000 if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || 8010122: 2b00 cmp r3, #0 8010124: d02e beq.n 8010184 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) 8010126: 687b ldr r3, [r7, #4] 8010128: 6c1b ldr r3, [r3, #64] ; 0x40 801012a: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 801012e: d129 bne.n 8010184 assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); /* Check for PLLI2S/DIVQ parameters */ assert_param(IS_RCC_PLLI2S_DIVQ_VALUE(PeriphClkInit->PLLI2SDivQ)); /* Read PLLI2SP and PLLI2SR values from PLLI2SCFGR register (this value is not needed for SAI configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); 8010130: 4b4a ldr r3, [pc, #296] ; (801025c ) 8010132: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8010136: 0c1b lsrs r3, r3, #16 8010138: f003 0303 and.w r3, r3, #3 801013c: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); 801013e: 4b47 ldr r3, [pc, #284] ; (801025c ) 8010140: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8010144: 0f1b lsrs r3, r3, #28 8010146: f003 0307 and.w r3, r3, #7 801014a: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO Input = PLL_SOURCE/PLLM */ /* PLLI2S_VCO Output = PLLI2S_VCO Input * PLLI2SN */ /* SAI_CLK(first level) = PLLI2S_VCO Output/PLLI2SQ */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN, tmpreg0, PeriphClkInit->PLLI2S.PLLI2SQ, tmpreg1); 801014c: 4943 ldr r1, [pc, #268] ; (801025c ) 801014e: 687b ldr r3, [r7, #4] 8010150: 685b ldr r3, [r3, #4] 8010152: 019a lsls r2, r3, #6 8010154: 693b ldr r3, [r7, #16] 8010156: 041b lsls r3, r3, #16 8010158: 431a orrs r2, r3 801015a: 687b ldr r3, [r7, #4] 801015c: 68db ldr r3, [r3, #12] 801015e: 061b lsls r3, r3, #24 8010160: 431a orrs r2, r3 8010162: 68fb ldr r3, [r7, #12] 8010164: 071b lsls r3, r3, #28 8010166: 4313 orrs r3, r2 8010168: f8c1 3084 str.w r3, [r1, #132] ; 0x84 /* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */ __HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ); 801016c: 493b ldr r1, [pc, #236] ; (801025c ) 801016e: 4b3b ldr r3, [pc, #236] ; (801025c ) 8010170: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 8010174: f023 021f bic.w r2, r3, #31 8010178: 687b ldr r3, [r7, #4] 801017a: 6a5b ldr r3, [r3, #36] ; 0x24 801017c: 3b01 subs r3, #1 801017e: 4313 orrs r3, r2 8010180: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*----------------- In Case of PLLI2S is selected as source clock for SPDIF-RX -------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) 8010184: 687b ldr r3, [r7, #4] 8010186: 681b ldr r3, [r3, #0] 8010188: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 801018c: 2b00 cmp r3, #0 801018e: d01d beq.n 80101cc { /* check for Parameters */ assert_param(IS_RCC_PLLI2SP_VALUE(PeriphClkInit->PLLI2S.PLLI2SP)); /* Read PLLI2SR value from PLLI2SCFGR register (this value is not needed for SPDIF-RX configuration) */ tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); 8010190: 4b32 ldr r3, [pc, #200] ; (801025c ) 8010192: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 8010196: 0e1b lsrs r3, r3, #24 8010198: f003 030f and.w r3, r3, #15 801019c: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); 801019e: 4b2f ldr r3, [pc, #188] ; (801025c ) 80101a0: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 80101a4: 0f1b lsrs r3, r3, #28 80101a6: f003 0307 and.w r3, r3, #7 80101aa: 60fb str r3, [r7, #12] /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ /* SPDIFCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, tmpreg0, tmpreg1); 80101ac: 492b ldr r1, [pc, #172] ; (801025c ) 80101ae: 687b ldr r3, [r7, #4] 80101b0: 685b ldr r3, [r3, #4] 80101b2: 019a lsls r2, r3, #6 80101b4: 687b ldr r3, [r7, #4] 80101b6: 691b ldr r3, [r3, #16] 80101b8: 041b lsls r3, r3, #16 80101ba: 431a orrs r2, r3 80101bc: 693b ldr r3, [r7, #16] 80101be: 061b lsls r3, r3, #24 80101c0: 431a orrs r2, r3 80101c2: 68fb ldr r3, [r7, #12] 80101c4: 071b lsls r3, r3, #28 80101c6: 4313 orrs r3, r2 80101c8: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /*----------------- In Case of PLLI2S is just selected -----------------*/ if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S) 80101cc: 687b ldr r3, [r7, #4] 80101ce: 681b ldr r3, [r3, #0] 80101d0: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 80101d4: 2b00 cmp r3, #0 80101d6: d011 beq.n 80101fc assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); /* Configure the PLLI2S division factors */ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLI2SM) */ /* SPDIFRXCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, PeriphClkInit->PLLI2S.PLLI2SQ, PeriphClkInit->PLLI2S.PLLI2SR); 80101d8: 4920 ldr r1, [pc, #128] ; (801025c ) 80101da: 687b ldr r3, [r7, #4] 80101dc: 685b ldr r3, [r3, #4] 80101de: 019a lsls r2, r3, #6 80101e0: 687b ldr r3, [r7, #4] 80101e2: 691b ldr r3, [r3, #16] 80101e4: 041b lsls r3, r3, #16 80101e6: 431a orrs r2, r3 80101e8: 687b ldr r3, [r7, #4] 80101ea: 68db ldr r3, [r3, #12] 80101ec: 061b lsls r3, r3, #24 80101ee: 431a orrs r2, r3 80101f0: 687b ldr r3, [r7, #4] 80101f2: 689b ldr r3, [r3, #8] 80101f4: 071b lsls r3, r3, #28 80101f6: 4313 orrs r3, r2 80101f8: f8c1 3084 str.w r3, [r1, #132] ; 0x84 } /* Enable the PLLI2S */ __HAL_RCC_PLLI2S_ENABLE(); 80101fc: 4a17 ldr r2, [pc, #92] ; (801025c ) 80101fe: 4b17 ldr r3, [pc, #92] ; (801025c ) 8010200: 681b ldr r3, [r3, #0] 8010202: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 8010206: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8010208: f7fd fc4c bl 800daa4 801020c: 6178 str r0, [r7, #20] /* Wait till PLLI2S is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) 801020e: e008 b.n 8010222 { if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) 8010210: f7fd fc48 bl 800daa4 8010214: 4602 mov r2, r0 8010216: 697b ldr r3, [r7, #20] 8010218: 1ad3 subs r3, r2, r3 801021a: 2b64 cmp r3, #100 ; 0x64 801021c: d901 bls.n 8010222 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 801021e: 2303 movs r3, #3 8010220: e0d7 b.n 80103d2 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) 8010222: 4b0e ldr r3, [pc, #56] ; (801025c ) 8010224: 681b ldr r3, [r3, #0] 8010226: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 801022a: 2b00 cmp r3, #0 801022c: d0f0 beq.n 8010210 } } /*-------------------------------------- PLLSAI Configuration ---------------------------------*/ /* PLLSAI is configured when a peripheral will use it as source clock : SAI1, SAI2, LTDC or CK48 */ if(pllsaiused == 1) 801022e: 69bb ldr r3, [r7, #24] 8010230: 2b01 cmp r3, #1 8010232: f040 80cd bne.w 80103d0 { /* Disable PLLSAI Clock */ __HAL_RCC_PLLSAI_DISABLE(); 8010236: 4a09 ldr r2, [pc, #36] ; (801025c ) 8010238: 4b08 ldr r3, [pc, #32] ; (801025c ) 801023a: 681b ldr r3, [r3, #0] 801023c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 8010240: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 8010242: f7fd fc2f bl 800daa4 8010246: 6178 str r0, [r7, #20] /* Wait till PLLSAI is disabled */ while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) 8010248: e00a b.n 8010260 { if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) 801024a: f7fd fc2b bl 800daa4 801024e: 4602 mov r2, r0 8010250: 697b ldr r3, [r7, #20] 8010252: 1ad3 subs r3, r2, r3 8010254: 2b64 cmp r3, #100 ; 0x64 8010256: d903 bls.n 8010260 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 8010258: 2303 movs r3, #3 801025a: e0ba b.n 80103d2 801025c: 40023800 .word 0x40023800 while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) 8010260: 4b5e ldr r3, [pc, #376] ; (80103dc ) 8010262: 681b ldr r3, [r3, #0] 8010264: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 8010268: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 801026c: d0ed beq.n 801024a /* Check the PLLSAI division factors */ assert_param(IS_RCC_PLLSAIN_VALUE(PeriphClkInit->PLLSAI.PLLSAIN)); /*----------------- In Case of PLLSAI is selected as source clock for SAI -------------------*/ if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ 801026e: 687b ldr r3, [r7, #4] 8010270: 681b ldr r3, [r3, #0] 8010272: f403 2300 and.w r3, r3, #524288 ; 0x80000 8010276: 2b00 cmp r3, #0 8010278: d003 beq.n 8010282 801027a: 687b ldr r3, [r7, #4] 801027c: 6bdb ldr r3, [r3, #60] ; 0x3c 801027e: 2b00 cmp r3, #0 8010280: d009 beq.n 8010296 ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) 8010282: 687b ldr r3, [r7, #4] 8010284: 681b ldr r3, [r3, #0] 8010286: f403 1380 and.w r3, r3, #1048576 ; 0x100000 if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ 801028a: 2b00 cmp r3, #0 801028c: d02e beq.n 80102ec ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) 801028e: 687b ldr r3, [r7, #4] 8010290: 6c1b ldr r3, [r3, #64] ; 0x40 8010292: 2b00 cmp r3, #0 8010294: d12a bne.n 80102ec assert_param(IS_RCC_PLLSAIQ_VALUE(PeriphClkInit->PLLSAI.PLLSAIQ)); /* check for PLLSAI/DIVQ Parameter */ assert_param(IS_RCC_PLLSAI_DIVQ_VALUE(PeriphClkInit->PLLSAIDivQ)); /* Read PLLSAIP value from PLLSAICFGR register (this value is not needed for SAI configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); 8010296: 4b51 ldr r3, [pc, #324] ; (80103dc ) 8010298: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 801029c: 0c1b lsrs r3, r3, #16 801029e: f003 0303 and.w r3, r3, #3 80102a2: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); 80102a4: 4b4d ldr r3, [pc, #308] ; (80103dc ) 80102a6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 80102aa: 0f1b lsrs r3, r3, #28 80102ac: f003 0307 and.w r3, r3, #7 80102b0: 60fb str r3, [r7, #12] /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ /* SAI_CLK(first level) = PLLSAI_VCO Output/PLLSAIQ */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg0, PeriphClkInit->PLLSAI.PLLSAIQ, tmpreg1); 80102b2: 494a ldr r1, [pc, #296] ; (80103dc ) 80102b4: 687b ldr r3, [r7, #4] 80102b6: 695b ldr r3, [r3, #20] 80102b8: 019a lsls r2, r3, #6 80102ba: 693b ldr r3, [r7, #16] 80102bc: 041b lsls r3, r3, #16 80102be: 431a orrs r2, r3 80102c0: 687b ldr r3, [r7, #4] 80102c2: 699b ldr r3, [r3, #24] 80102c4: 061b lsls r3, r3, #24 80102c6: 431a orrs r2, r3 80102c8: 68fb ldr r3, [r7, #12] 80102ca: 071b lsls r3, r3, #28 80102cc: 4313 orrs r3, r2 80102ce: f8c1 3088 str.w r3, [r1, #136] ; 0x88 /* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */ __HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ); 80102d2: 4942 ldr r1, [pc, #264] ; (80103dc ) 80102d4: 4b41 ldr r3, [pc, #260] ; (80103dc ) 80102d6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 80102da: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00 80102de: 687b ldr r3, [r7, #4] 80102e0: 6a9b ldr r3, [r3, #40] ; 0x28 80102e2: 3b01 subs r3, #1 80102e4: 021b lsls r3, r3, #8 80102e6: 4313 orrs r3, r2 80102e8: f8c1 308c str.w r3, [r1, #140] ; 0x8c } /*----------------- In Case of PLLSAI is selected as source clock for CLK48 -------------------*/ /* In Case of PLLI2S is selected as source clock for CK48 */ if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) && (PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP)) 80102ec: 687b ldr r3, [r7, #4] 80102ee: 681b ldr r3, [r3, #0] 80102f0: f403 1300 and.w r3, r3, #2097152 ; 0x200000 80102f4: 2b00 cmp r3, #0 80102f6: d022 beq.n 801033e 80102f8: 687b ldr r3, [r7, #4] 80102fa: 6fdb ldr r3, [r3, #124] ; 0x7c 80102fc: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 8010300: d11d bne.n 801033e { /* check for Parameters */ assert_param(IS_RCC_PLLSAIP_VALUE(PeriphClkInit->PLLSAI.PLLSAIP)); /* Read PLLSAIQ and PLLSAIR value from PLLSAICFGR register (this value is not needed for CK48 configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); 8010302: 4b36 ldr r3, [pc, #216] ; (80103dc ) 8010304: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8010308: 0e1b lsrs r3, r3, #24 801030a: f003 030f and.w r3, r3, #15 801030e: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); 8010310: 4b32 ldr r3, [pc, #200] ; (80103dc ) 8010312: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8010316: 0f1b lsrs r3, r3, #28 8010318: f003 0307 and.w r3, r3, #7 801031c: 60fb str r3, [r7, #12] /* Configure the PLLSAI division factors */ /* PLLSAI_VCO = f(VCO clock) = f(PLLSAI clock input) x (PLLI2SN/PLLM) */ /* 48CLK = f(PLLSAI clock output) = f(VCO clock) / PLLSAIP */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , PeriphClkInit->PLLSAI.PLLSAIP, tmpreg0, tmpreg1); 801031e: 492f ldr r1, [pc, #188] ; (80103dc ) 8010320: 687b ldr r3, [r7, #4] 8010322: 695b ldr r3, [r3, #20] 8010324: 019a lsls r2, r3, #6 8010326: 687b ldr r3, [r7, #4] 8010328: 6a1b ldr r3, [r3, #32] 801032a: 041b lsls r3, r3, #16 801032c: 431a orrs r2, r3 801032e: 693b ldr r3, [r7, #16] 8010330: 061b lsls r3, r3, #24 8010332: 431a orrs r2, r3 8010334: 68fb ldr r3, [r7, #12] 8010336: 071b lsls r3, r3, #28 8010338: 4313 orrs r3, r2 801033a: f8c1 3088 str.w r3, [r1, #136] ; 0x88 } #if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) /*---------------------------- LTDC configuration -------------------------------*/ if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == (RCC_PERIPHCLK_LTDC)) 801033e: 687b ldr r3, [r7, #4] 8010340: 681b ldr r3, [r3, #0] 8010342: f003 0308 and.w r3, r3, #8 8010346: 2b00 cmp r3, #0 8010348: d028 beq.n 801039c { assert_param(IS_RCC_PLLSAIR_VALUE(PeriphClkInit->PLLSAI.PLLSAIR)); assert_param(IS_RCC_PLLSAI_DIVR_VALUE(PeriphClkInit->PLLSAIDivR)); /* Read PLLSAIP and PLLSAIQ value from PLLSAICFGR register (these value are not needed for LTDC configuration) */ tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); 801034a: 4b24 ldr r3, [pc, #144] ; (80103dc ) 801034c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 8010350: 0e1b lsrs r3, r3, #24 8010352: f003 030f and.w r3, r3, #15 8010356: 613b str r3, [r7, #16] tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); 8010358: 4b20 ldr r3, [pc, #128] ; (80103dc ) 801035a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 801035e: 0c1b lsrs r3, r3, #16 8010360: f003 0303 and.w r3, r3, #3 8010364: 60fb str r3, [r7, #12] /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ /* LTDC_CLK(first level) = PLLSAI_VCO Output/PLLSAIR */ __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg1, tmpreg0, PeriphClkInit->PLLSAI.PLLSAIR); 8010366: 491d ldr r1, [pc, #116] ; (80103dc ) 8010368: 687b ldr r3, [r7, #4] 801036a: 695b ldr r3, [r3, #20] 801036c: 019a lsls r2, r3, #6 801036e: 68fb ldr r3, [r7, #12] 8010370: 041b lsls r3, r3, #16 8010372: 431a orrs r2, r3 8010374: 693b ldr r3, [r7, #16] 8010376: 061b lsls r3, r3, #24 8010378: 431a orrs r2, r3 801037a: 687b ldr r3, [r7, #4] 801037c: 69db ldr r3, [r3, #28] 801037e: 071b lsls r3, r3, #28 8010380: 4313 orrs r3, r2 8010382: f8c1 3088 str.w r3, [r1, #136] ; 0x88 /* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */ __HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR); 8010386: 4915 ldr r1, [pc, #84] ; (80103dc ) 8010388: 4b14 ldr r3, [pc, #80] ; (80103dc ) 801038a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c 801038e: f423 3240 bic.w r2, r3, #196608 ; 0x30000 8010392: 687b ldr r3, [r7, #4] 8010394: 6adb ldr r3, [r3, #44] ; 0x2c 8010396: 4313 orrs r3, r2 8010398: f8c1 308c str.w r3, [r1, #140] ; 0x8c } #endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ /* Enable PLLSAI Clock */ __HAL_RCC_PLLSAI_ENABLE(); 801039c: 4a0f ldr r2, [pc, #60] ; (80103dc ) 801039e: 4b0f ldr r3, [pc, #60] ; (80103dc ) 80103a0: 681b ldr r3, [r3, #0] 80103a2: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 80103a6: 6013 str r3, [r2, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); 80103a8: f7fd fb7c bl 800daa4 80103ac: 6178 str r0, [r7, #20] /* Wait till PLLSAI is ready */ while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 80103ae: e008 b.n 80103c2 { if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) 80103b0: f7fd fb78 bl 800daa4 80103b4: 4602 mov r2, r0 80103b6: 697b ldr r3, [r7, #20] 80103b8: 1ad3 subs r3, r2, r3 80103ba: 2b64 cmp r3, #100 ; 0x64 80103bc: d901 bls.n 80103c2 { /* return in case of Timeout detected */ return HAL_TIMEOUT; 80103be: 2303 movs r3, #3 80103c0: e007 b.n 80103d2 while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) 80103c2: 4b06 ldr r3, [pc, #24] ; (80103dc ) 80103c4: 681b ldr r3, [r3, #0] 80103c6: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 80103ca: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 80103ce: d1ef bne.n 80103b0 } } } return HAL_OK; 80103d0: 2300 movs r3, #0 } 80103d2: 4618 mov r0, r3 80103d4: 3720 adds r7, #32 80103d6: 46bd mov sp, r7 80103d8: bd80 pop {r7, pc} 80103da: bf00 nop 80103dc: 40023800 .word 0x40023800 080103e0 : * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) { 80103e0: b580 push {r7, lr} 80103e2: b082 sub sp, #8 80103e4: af00 add r7, sp, #0 80103e6: 6078 str r0, [r7, #4] /* Check the TIM handle allocation */ if (htim == NULL) 80103e8: 687b ldr r3, [r7, #4] 80103ea: 2b00 cmp r3, #0 80103ec: d101 bne.n 80103f2 { return HAL_ERROR; 80103ee: 2301 movs r3, #1 80103f0: e049 b.n 8010486 assert_param(IS_TIM_INSTANCE(htim->Instance)); assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); if (htim->State == HAL_TIM_STATE_RESET) 80103f2: 687b ldr r3, [r7, #4] 80103f4: f893 303d ldrb.w r3, [r3, #61] ; 0x3d 80103f8: b2db uxtb r3, r3 80103fa: 2b00 cmp r3, #0 80103fc: d106 bne.n 801040c { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; 80103fe: 687b ldr r3, [r7, #4] 8010400: 2200 movs r2, #0 8010402: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Init the low level hardware : GPIO, CLOCK, NVIC */ htim->Base_MspInitCallback(htim); #else /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_TIM_Base_MspInit(htim); 8010406: 6878 ldr r0, [r7, #4] 8010408: f7fb fd5e bl 800bec8 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; 801040c: 687b ldr r3, [r7, #4] 801040e: 2202 movs r2, #2 8010410: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Set the Time Base configuration */ TIM_Base_SetConfig(htim->Instance, &htim->Init); 8010414: 687b ldr r3, [r7, #4] 8010416: 681a ldr r2, [r3, #0] 8010418: 687b ldr r3, [r7, #4] 801041a: 3304 adds r3, #4 801041c: 4619 mov r1, r3 801041e: 4610 mov r0, r2 8010420: f000 f9f6 bl 8010810 /* Initialize the DMA burst operation state */ htim->DMABurstState = HAL_DMA_BURST_STATE_READY; 8010424: 687b ldr r3, [r7, #4] 8010426: 2201 movs r2, #1 8010428: f883 2048 strb.w r2, [r3, #72] ; 0x48 /* Initialize the TIM channels state */ TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); 801042c: 687b ldr r3, [r7, #4] 801042e: 2201 movs r2, #1 8010430: f883 203e strb.w r2, [r3, #62] ; 0x3e 8010434: 687b ldr r3, [r7, #4] 8010436: 2201 movs r2, #1 8010438: f883 203f strb.w r2, [r3, #63] ; 0x3f 801043c: 687b ldr r3, [r7, #4] 801043e: 2201 movs r2, #1 8010440: f883 2040 strb.w r2, [r3, #64] ; 0x40 8010444: 687b ldr r3, [r7, #4] 8010446: 2201 movs r2, #1 8010448: f883 2041 strb.w r2, [r3, #65] ; 0x41 801044c: 687b ldr r3, [r7, #4] 801044e: 2201 movs r2, #1 8010450: f883 2042 strb.w r2, [r3, #66] ; 0x42 8010454: 687b ldr r3, [r7, #4] 8010456: 2201 movs r2, #1 8010458: f883 2043 strb.w r2, [r3, #67] ; 0x43 TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY); 801045c: 687b ldr r3, [r7, #4] 801045e: 2201 movs r2, #1 8010460: f883 2044 strb.w r2, [r3, #68] ; 0x44 8010464: 687b ldr r3, [r7, #4] 8010466: 2201 movs r2, #1 8010468: f883 2045 strb.w r2, [r3, #69] ; 0x45 801046c: 687b ldr r3, [r7, #4] 801046e: 2201 movs r2, #1 8010470: f883 2046 strb.w r2, [r3, #70] ; 0x46 8010474: 687b ldr r3, [r7, #4] 8010476: 2201 movs r2, #1 8010478: f883 2047 strb.w r2, [r3, #71] ; 0x47 /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; 801047c: 687b ldr r3, [r7, #4] 801047e: 2201 movs r2, #1 8010480: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; 8010484: 2300 movs r3, #0 } 8010486: 4618 mov r0, r3 8010488: 3708 adds r7, #8 801048a: 46bd mov sp, r7 801048c: bd80 pop {r7, pc} ... 08010490 : * @brief Starts the TIM Base generation in interrupt mode. * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) { 8010490: b480 push {r7} 8010492: b085 sub sp, #20 8010494: af00 add r7, sp, #0 8010496: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_TIM_INSTANCE(htim->Instance)); /* Check the TIM state */ if (htim->State != HAL_TIM_STATE_READY) 8010498: 687b ldr r3, [r7, #4] 801049a: f893 303d ldrb.w r3, [r3, #61] ; 0x3d 801049e: b2db uxtb r3, r3 80104a0: 2b01 cmp r3, #1 80104a2: d001 beq.n 80104a8 { return HAL_ERROR; 80104a4: 2301 movs r3, #1 80104a6: e054 b.n 8010552 } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; 80104a8: 687b ldr r3, [r7, #4] 80104aa: 2202 movs r2, #2 80104ac: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Enable the TIM Update interrupt */ __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE); 80104b0: 687b ldr r3, [r7, #4] 80104b2: 681b ldr r3, [r3, #0] 80104b4: 687a ldr r2, [r7, #4] 80104b6: 6812 ldr r2, [r2, #0] 80104b8: 68d2 ldr r2, [r2, #12] 80104ba: f042 0201 orr.w r2, r2, #1 80104be: 60da str r2, [r3, #12] /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) 80104c0: 687b ldr r3, [r7, #4] 80104c2: 681b ldr r3, [r3, #0] 80104c4: 4a26 ldr r2, [pc, #152] ; (8010560 ) 80104c6: 4293 cmp r3, r2 80104c8: d022 beq.n 8010510 80104ca: 687b ldr r3, [r7, #4] 80104cc: 681b ldr r3, [r3, #0] 80104ce: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 80104d2: d01d beq.n 8010510 80104d4: 687b ldr r3, [r7, #4] 80104d6: 681b ldr r3, [r3, #0] 80104d8: 4a22 ldr r2, [pc, #136] ; (8010564 ) 80104da: 4293 cmp r3, r2 80104dc: d018 beq.n 8010510 80104de: 687b ldr r3, [r7, #4] 80104e0: 681b ldr r3, [r3, #0] 80104e2: 4a21 ldr r2, [pc, #132] ; (8010568 ) 80104e4: 4293 cmp r3, r2 80104e6: d013 beq.n 8010510 80104e8: 687b ldr r3, [r7, #4] 80104ea: 681b ldr r3, [r3, #0] 80104ec: 4a1f ldr r2, [pc, #124] ; (801056c ) 80104ee: 4293 cmp r3, r2 80104f0: d00e beq.n 8010510 80104f2: 687b ldr r3, [r7, #4] 80104f4: 681b ldr r3, [r3, #0] 80104f6: 4a1e ldr r2, [pc, #120] ; (8010570 ) 80104f8: 4293 cmp r3, r2 80104fa: d009 beq.n 8010510 80104fc: 687b ldr r3, [r7, #4] 80104fe: 681b ldr r3, [r3, #0] 8010500: 4a1c ldr r2, [pc, #112] ; (8010574 ) 8010502: 4293 cmp r3, r2 8010504: d004 beq.n 8010510 8010506: 687b ldr r3, [r7, #4] 8010508: 681b ldr r3, [r3, #0] 801050a: 4a1b ldr r2, [pc, #108] ; (8010578 ) 801050c: 4293 cmp r3, r2 801050e: d115 bne.n 801053c { tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; 8010510: 687b ldr r3, [r7, #4] 8010512: 681b ldr r3, [r3, #0] 8010514: 689a ldr r2, [r3, #8] 8010516: 4b19 ldr r3, [pc, #100] ; (801057c ) 8010518: 4013 ands r3, r2 801051a: 60fb str r3, [r7, #12] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 801051c: 68fb ldr r3, [r7, #12] 801051e: 2b06 cmp r3, #6 8010520: d015 beq.n 801054e 8010522: 68fb ldr r3, [r7, #12] 8010524: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8010528: d011 beq.n 801054e { __HAL_TIM_ENABLE(htim); 801052a: 687b ldr r3, [r7, #4] 801052c: 681b ldr r3, [r3, #0] 801052e: 687a ldr r2, [r7, #4] 8010530: 6812 ldr r2, [r2, #0] 8010532: 6812 ldr r2, [r2, #0] 8010534: f042 0201 orr.w r2, r2, #1 8010538: 601a str r2, [r3, #0] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 801053a: e008 b.n 801054e } } else { __HAL_TIM_ENABLE(htim); 801053c: 687b ldr r3, [r7, #4] 801053e: 681b ldr r3, [r3, #0] 8010540: 687a ldr r2, [r7, #4] 8010542: 6812 ldr r2, [r2, #0] 8010544: 6812 ldr r2, [r2, #0] 8010546: f042 0201 orr.w r2, r2, #1 801054a: 601a str r2, [r3, #0] 801054c: e000 b.n 8010550 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) 801054e: bf00 nop } /* Return function status */ return HAL_OK; 8010550: 2300 movs r3, #0 } 8010552: 4618 mov r0, r3 8010554: 3714 adds r7, #20 8010556: 46bd mov sp, r7 8010558: f85d 7b04 ldr.w r7, [sp], #4 801055c: 4770 bx lr 801055e: bf00 nop 8010560: 40010000 .word 0x40010000 8010564: 40000400 .word 0x40000400 8010568: 40000800 .word 0x40000800 801056c: 40000c00 .word 0x40000c00 8010570: 40010400 .word 0x40010400 8010574: 40014000 .word 0x40014000 8010578: 40001800 .word 0x40001800 801057c: 00010007 .word 0x00010007 08010580 : * @brief This function handles TIM interrupts requests. * @param htim TIM handle * @retval None */ void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) { 8010580: b580 push {r7, lr} 8010582: b082 sub sp, #8 8010584: af00 add r7, sp, #0 8010586: 6078 str r0, [r7, #4] /* Capture compare 1 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) 8010588: 687b ldr r3, [r7, #4] 801058a: 681b ldr r3, [r3, #0] 801058c: 691b ldr r3, [r3, #16] 801058e: f003 0302 and.w r3, r3, #2 8010592: 2b02 cmp r3, #2 8010594: d122 bne.n 80105dc { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) 8010596: 687b ldr r3, [r7, #4] 8010598: 681b ldr r3, [r3, #0] 801059a: 68db ldr r3, [r3, #12] 801059c: f003 0302 and.w r3, r3, #2 80105a0: 2b02 cmp r3, #2 80105a2: d11b bne.n 80105dc { { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1); 80105a4: 687b ldr r3, [r7, #4] 80105a6: 681b ldr r3, [r3, #0] 80105a8: f06f 0202 mvn.w r2, #2 80105ac: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; 80105ae: 687b ldr r3, [r7, #4] 80105b0: 2201 movs r2, #1 80105b2: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) 80105b4: 687b ldr r3, [r7, #4] 80105b6: 681b ldr r3, [r3, #0] 80105b8: 699b ldr r3, [r3, #24] 80105ba: f003 0303 and.w r3, r3, #3 80105be: 2b00 cmp r3, #0 80105c0: d003 beq.n 80105ca { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 80105c2: 6878 ldr r0, [r7, #4] 80105c4: f000 f905 bl 80107d2 80105c8: e005 b.n 80105d6 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 80105ca: 6878 ldr r0, [r7, #4] 80105cc: f000 f8f7 bl 80107be HAL_TIM_PWM_PulseFinishedCallback(htim); 80105d0: 6878 ldr r0, [r7, #4] 80105d2: f000 f908 bl 80107e6 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 80105d6: 687b ldr r3, [r7, #4] 80105d8: 2200 movs r2, #0 80105da: 771a strb r2, [r3, #28] } } } /* Capture compare 2 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) 80105dc: 687b ldr r3, [r7, #4] 80105de: 681b ldr r3, [r3, #0] 80105e0: 691b ldr r3, [r3, #16] 80105e2: f003 0304 and.w r3, r3, #4 80105e6: 2b04 cmp r3, #4 80105e8: d122 bne.n 8010630 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) 80105ea: 687b ldr r3, [r7, #4] 80105ec: 681b ldr r3, [r3, #0] 80105ee: 68db ldr r3, [r3, #12] 80105f0: f003 0304 and.w r3, r3, #4 80105f4: 2b04 cmp r3, #4 80105f6: d11b bne.n 8010630 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2); 80105f8: 687b ldr r3, [r7, #4] 80105fa: 681b ldr r3, [r3, #0] 80105fc: f06f 0204 mvn.w r2, #4 8010600: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; 8010602: 687b ldr r3, [r7, #4] 8010604: 2202 movs r2, #2 8010606: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) 8010608: 687b ldr r3, [r7, #4] 801060a: 681b ldr r3, [r3, #0] 801060c: 699b ldr r3, [r3, #24] 801060e: f403 7340 and.w r3, r3, #768 ; 0x300 8010612: 2b00 cmp r3, #0 8010614: d003 beq.n 801061e { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 8010616: 6878 ldr r0, [r7, #4] 8010618: f000 f8db bl 80107d2 801061c: e005 b.n 801062a { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 801061e: 6878 ldr r0, [r7, #4] 8010620: f000 f8cd bl 80107be HAL_TIM_PWM_PulseFinishedCallback(htim); 8010624: 6878 ldr r0, [r7, #4] 8010626: f000 f8de bl 80107e6 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 801062a: 687b ldr r3, [r7, #4] 801062c: 2200 movs r2, #0 801062e: 771a strb r2, [r3, #28] } } /* Capture compare 3 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) 8010630: 687b ldr r3, [r7, #4] 8010632: 681b ldr r3, [r3, #0] 8010634: 691b ldr r3, [r3, #16] 8010636: f003 0308 and.w r3, r3, #8 801063a: 2b08 cmp r3, #8 801063c: d122 bne.n 8010684 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) 801063e: 687b ldr r3, [r7, #4] 8010640: 681b ldr r3, [r3, #0] 8010642: 68db ldr r3, [r3, #12] 8010644: f003 0308 and.w r3, r3, #8 8010648: 2b08 cmp r3, #8 801064a: d11b bne.n 8010684 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3); 801064c: 687b ldr r3, [r7, #4] 801064e: 681b ldr r3, [r3, #0] 8010650: f06f 0208 mvn.w r2, #8 8010654: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; 8010656: 687b ldr r3, [r7, #4] 8010658: 2204 movs r2, #4 801065a: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) 801065c: 687b ldr r3, [r7, #4] 801065e: 681b ldr r3, [r3, #0] 8010660: 69db ldr r3, [r3, #28] 8010662: f003 0303 and.w r3, r3, #3 8010666: 2b00 cmp r3, #0 8010668: d003 beq.n 8010672 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 801066a: 6878 ldr r0, [r7, #4] 801066c: f000 f8b1 bl 80107d2 8010670: e005 b.n 801067e { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 8010672: 6878 ldr r0, [r7, #4] 8010674: f000 f8a3 bl 80107be HAL_TIM_PWM_PulseFinishedCallback(htim); 8010678: 6878 ldr r0, [r7, #4] 801067a: f000 f8b4 bl 80107e6 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 801067e: 687b ldr r3, [r7, #4] 8010680: 2200 movs r2, #0 8010682: 771a strb r2, [r3, #28] } } /* Capture compare 4 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) 8010684: 687b ldr r3, [r7, #4] 8010686: 681b ldr r3, [r3, #0] 8010688: 691b ldr r3, [r3, #16] 801068a: f003 0310 and.w r3, r3, #16 801068e: 2b10 cmp r3, #16 8010690: d122 bne.n 80106d8 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) 8010692: 687b ldr r3, [r7, #4] 8010694: 681b ldr r3, [r3, #0] 8010696: 68db ldr r3, [r3, #12] 8010698: f003 0310 and.w r3, r3, #16 801069c: 2b10 cmp r3, #16 801069e: d11b bne.n 80106d8 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4); 80106a0: 687b ldr r3, [r7, #4] 80106a2: 681b ldr r3, [r3, #0] 80106a4: f06f 0210 mvn.w r2, #16 80106a8: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; 80106aa: 687b ldr r3, [r7, #4] 80106ac: 2208 movs r2, #8 80106ae: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) 80106b0: 687b ldr r3, [r7, #4] 80106b2: 681b ldr r3, [r3, #0] 80106b4: 69db ldr r3, [r3, #28] 80106b6: f403 7340 and.w r3, r3, #768 ; 0x300 80106ba: 2b00 cmp r3, #0 80106bc: d003 beq.n 80106c6 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); 80106be: 6878 ldr r0, [r7, #4] 80106c0: f000 f887 bl 80107d2 80106c4: e005 b.n 80106d2 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); 80106c6: 6878 ldr r0, [r7, #4] 80106c8: f000 f879 bl 80107be HAL_TIM_PWM_PulseFinishedCallback(htim); 80106cc: 6878 ldr r0, [r7, #4] 80106ce: f000 f88a bl 80107e6 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; 80106d2: 687b ldr r3, [r7, #4] 80106d4: 2200 movs r2, #0 80106d6: 771a strb r2, [r3, #28] } } /* TIM Update event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) 80106d8: 687b ldr r3, [r7, #4] 80106da: 681b ldr r3, [r3, #0] 80106dc: 691b ldr r3, [r3, #16] 80106de: f003 0301 and.w r3, r3, #1 80106e2: 2b01 cmp r3, #1 80106e4: d10e bne.n 8010704 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) 80106e6: 687b ldr r3, [r7, #4] 80106e8: 681b ldr r3, [r3, #0] 80106ea: 68db ldr r3, [r3, #12] 80106ec: f003 0301 and.w r3, r3, #1 80106f0: 2b01 cmp r3, #1 80106f2: d107 bne.n 8010704 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); 80106f4: 687b ldr r3, [r7, #4] 80106f6: 681b ldr r3, [r3, #0] 80106f8: f06f 0201 mvn.w r2, #1 80106fc: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->PeriodElapsedCallback(htim); #else HAL_TIM_PeriodElapsedCallback(htim); 80106fe: 6878 ldr r0, [r7, #4] 8010700: f7fb fc30 bl 800bf64 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) 8010704: 687b ldr r3, [r7, #4] 8010706: 681b ldr r3, [r3, #0] 8010708: 691b ldr r3, [r3, #16] 801070a: f003 0380 and.w r3, r3, #128 ; 0x80 801070e: 2b80 cmp r3, #128 ; 0x80 8010710: d10e bne.n 8010730 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) 8010712: 687b ldr r3, [r7, #4] 8010714: 681b ldr r3, [r3, #0] 8010716: 68db ldr r3, [r3, #12] 8010718: f003 0380 and.w r3, r3, #128 ; 0x80 801071c: 2b80 cmp r3, #128 ; 0x80 801071e: d107 bne.n 8010730 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); 8010720: 687b ldr r3, [r7, #4] 8010722: 681b ldr r3, [r3, #0] 8010724: f06f 0280 mvn.w r2, #128 ; 0x80 8010728: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->BreakCallback(htim); #else HAL_TIMEx_BreakCallback(htim); 801072a: 6878 ldr r0, [r7, #4] 801072c: f000 f9a8 bl 8010a80 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break2 input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET) 8010730: 687b ldr r3, [r7, #4] 8010732: 681b ldr r3, [r3, #0] 8010734: 691b ldr r3, [r3, #16] 8010736: f403 7380 and.w r3, r3, #256 ; 0x100 801073a: f5b3 7f80 cmp.w r3, #256 ; 0x100 801073e: d10e bne.n 801075e { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) 8010740: 687b ldr r3, [r7, #4] 8010742: 681b ldr r3, [r3, #0] 8010744: 68db ldr r3, [r3, #12] 8010746: f003 0380 and.w r3, r3, #128 ; 0x80 801074a: 2b80 cmp r3, #128 ; 0x80 801074c: d107 bne.n 801075e { __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2); 801074e: 687b ldr r3, [r7, #4] 8010750: 681b ldr r3, [r3, #0] 8010752: f46f 7280 mvn.w r2, #256 ; 0x100 8010756: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->Break2Callback(htim); #else HAL_TIMEx_Break2Callback(htim); 8010758: 6878 ldr r0, [r7, #4] 801075a: f000 f99b bl 8010a94 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Trigger detection event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) 801075e: 687b ldr r3, [r7, #4] 8010760: 681b ldr r3, [r3, #0] 8010762: 691b ldr r3, [r3, #16] 8010764: f003 0340 and.w r3, r3, #64 ; 0x40 8010768: 2b40 cmp r3, #64 ; 0x40 801076a: d10e bne.n 801078a { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) 801076c: 687b ldr r3, [r7, #4] 801076e: 681b ldr r3, [r3, #0] 8010770: 68db ldr r3, [r3, #12] 8010772: f003 0340 and.w r3, r3, #64 ; 0x40 8010776: 2b40 cmp r3, #64 ; 0x40 8010778: d107 bne.n 801078a { __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER); 801077a: 687b ldr r3, [r7, #4] 801077c: 681b ldr r3, [r3, #0] 801077e: f06f 0240 mvn.w r2, #64 ; 0x40 8010782: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->TriggerCallback(htim); #else HAL_TIM_TriggerCallback(htim); 8010784: 6878 ldr r0, [r7, #4] 8010786: f000 f838 bl 80107fa #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM commutation event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) 801078a: 687b ldr r3, [r7, #4] 801078c: 681b ldr r3, [r3, #0] 801078e: 691b ldr r3, [r3, #16] 8010790: f003 0320 and.w r3, r3, #32 8010794: 2b20 cmp r3, #32 8010796: d10e bne.n 80107b6 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) 8010798: 687b ldr r3, [r7, #4] 801079a: 681b ldr r3, [r3, #0] 801079c: 68db ldr r3, [r3, #12] 801079e: f003 0320 and.w r3, r3, #32 80107a2: 2b20 cmp r3, #32 80107a4: d107 bne.n 80107b6 { __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM); 80107a6: 687b ldr r3, [r7, #4] 80107a8: 681b ldr r3, [r3, #0] 80107aa: f06f 0220 mvn.w r2, #32 80107ae: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->CommutationCallback(htim); #else HAL_TIMEx_CommutCallback(htim); 80107b0: 6878 ldr r0, [r7, #4] 80107b2: f000 f95b bl 8010a6c #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } } 80107b6: bf00 nop 80107b8: 3708 adds r7, #8 80107ba: 46bd mov sp, r7 80107bc: bd80 pop {r7, pc} 080107be : * @brief Output Compare callback in non-blocking mode * @param htim TIM OC handle * @retval None */ __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { 80107be: b480 push {r7} 80107c0: b083 sub sp, #12 80107c2: af00 add r7, sp, #0 80107c4: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file */ } 80107c6: bf00 nop 80107c8: 370c adds r7, #12 80107ca: 46bd mov sp, r7 80107cc: f85d 7b04 ldr.w r7, [sp], #4 80107d0: 4770 bx lr 080107d2 : * @brief Input Capture callback in non-blocking mode * @param htim TIM IC handle * @retval None */ __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { 80107d2: b480 push {r7} 80107d4: b083 sub sp, #12 80107d6: af00 add r7, sp, #0 80107d8: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_IC_CaptureCallback could be implemented in the user file */ } 80107da: bf00 nop 80107dc: 370c adds r7, #12 80107de: 46bd mov sp, r7 80107e0: f85d 7b04 ldr.w r7, [sp], #4 80107e4: 4770 bx lr 080107e6 : * @brief PWM Pulse finished callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { 80107e6: b480 push {r7} 80107e8: b083 sub sp, #12 80107ea: af00 add r7, sp, #0 80107ec: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file */ } 80107ee: bf00 nop 80107f0: 370c adds r7, #12 80107f2: 46bd mov sp, r7 80107f4: f85d 7b04 ldr.w r7, [sp], #4 80107f8: 4770 bx lr 080107fa : * @brief Hall Trigger detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) { 80107fa: b480 push {r7} 80107fc: b083 sub sp, #12 80107fe: af00 add r7, sp, #0 8010800: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_TriggerCallback could be implemented in the user file */ } 8010802: bf00 nop 8010804: 370c adds r7, #12 8010806: 46bd mov sp, r7 8010808: f85d 7b04 ldr.w r7, [sp], #4 801080c: 4770 bx lr ... 08010810 : * @param TIMx TIM peripheral * @param Structure TIM Base configuration structure * @retval None */ void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) { 8010810: b480 push {r7} 8010812: b085 sub sp, #20 8010814: af00 add r7, sp, #0 8010816: 6078 str r0, [r7, #4] 8010818: 6039 str r1, [r7, #0] uint32_t tmpcr1; tmpcr1 = TIMx->CR1; 801081a: 687b ldr r3, [r7, #4] 801081c: 681b ldr r3, [r3, #0] 801081e: 60fb str r3, [r7, #12] /* Set TIM Time Base Unit parameters ---------------------------------------*/ if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) 8010820: 687b ldr r3, [r7, #4] 8010822: 4a40 ldr r2, [pc, #256] ; (8010924 ) 8010824: 4293 cmp r3, r2 8010826: d013 beq.n 8010850 8010828: 687b ldr r3, [r7, #4] 801082a: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 801082e: d00f beq.n 8010850 8010830: 687b ldr r3, [r7, #4] 8010832: 4a3d ldr r2, [pc, #244] ; (8010928 ) 8010834: 4293 cmp r3, r2 8010836: d00b beq.n 8010850 8010838: 687b ldr r3, [r7, #4] 801083a: 4a3c ldr r2, [pc, #240] ; (801092c ) 801083c: 4293 cmp r3, r2 801083e: d007 beq.n 8010850 8010840: 687b ldr r3, [r7, #4] 8010842: 4a3b ldr r2, [pc, #236] ; (8010930 ) 8010844: 4293 cmp r3, r2 8010846: d003 beq.n 8010850 8010848: 687b ldr r3, [r7, #4] 801084a: 4a3a ldr r2, [pc, #232] ; (8010934 ) 801084c: 4293 cmp r3, r2 801084e: d108 bne.n 8010862 { /* Select the Counter Mode */ tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); 8010850: 68fb ldr r3, [r7, #12] 8010852: f023 0370 bic.w r3, r3, #112 ; 0x70 8010856: 60fb str r3, [r7, #12] tmpcr1 |= Structure->CounterMode; 8010858: 683b ldr r3, [r7, #0] 801085a: 685b ldr r3, [r3, #4] 801085c: 68fa ldr r2, [r7, #12] 801085e: 4313 orrs r3, r2 8010860: 60fb str r3, [r7, #12] } if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) 8010862: 687b ldr r3, [r7, #4] 8010864: 4a2f ldr r2, [pc, #188] ; (8010924 ) 8010866: 4293 cmp r3, r2 8010868: d02b beq.n 80108c2 801086a: 687b ldr r3, [r7, #4] 801086c: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 8010870: d027 beq.n 80108c2 8010872: 687b ldr r3, [r7, #4] 8010874: 4a2c ldr r2, [pc, #176] ; (8010928 ) 8010876: 4293 cmp r3, r2 8010878: d023 beq.n 80108c2 801087a: 687b ldr r3, [r7, #4] 801087c: 4a2b ldr r2, [pc, #172] ; (801092c ) 801087e: 4293 cmp r3, r2 8010880: d01f beq.n 80108c2 8010882: 687b ldr r3, [r7, #4] 8010884: 4a2a ldr r2, [pc, #168] ; (8010930 ) 8010886: 4293 cmp r3, r2 8010888: d01b beq.n 80108c2 801088a: 687b ldr r3, [r7, #4] 801088c: 4a29 ldr r2, [pc, #164] ; (8010934 ) 801088e: 4293 cmp r3, r2 8010890: d017 beq.n 80108c2 8010892: 687b ldr r3, [r7, #4] 8010894: 4a28 ldr r2, [pc, #160] ; (8010938 ) 8010896: 4293 cmp r3, r2 8010898: d013 beq.n 80108c2 801089a: 687b ldr r3, [r7, #4] 801089c: 4a27 ldr r2, [pc, #156] ; (801093c ) 801089e: 4293 cmp r3, r2 80108a0: d00f beq.n 80108c2 80108a2: 687b ldr r3, [r7, #4] 80108a4: 4a26 ldr r2, [pc, #152] ; (8010940 ) 80108a6: 4293 cmp r3, r2 80108a8: d00b beq.n 80108c2 80108aa: 687b ldr r3, [r7, #4] 80108ac: 4a25 ldr r2, [pc, #148] ; (8010944 ) 80108ae: 4293 cmp r3, r2 80108b0: d007 beq.n 80108c2 80108b2: 687b ldr r3, [r7, #4] 80108b4: 4a24 ldr r2, [pc, #144] ; (8010948 ) 80108b6: 4293 cmp r3, r2 80108b8: d003 beq.n 80108c2 80108ba: 687b ldr r3, [r7, #4] 80108bc: 4a23 ldr r2, [pc, #140] ; (801094c ) 80108be: 4293 cmp r3, r2 80108c0: d108 bne.n 80108d4 { /* Set the clock division */ tmpcr1 &= ~TIM_CR1_CKD; 80108c2: 68fb ldr r3, [r7, #12] 80108c4: f423 7340 bic.w r3, r3, #768 ; 0x300 80108c8: 60fb str r3, [r7, #12] tmpcr1 |= (uint32_t)Structure->ClockDivision; 80108ca: 683b ldr r3, [r7, #0] 80108cc: 68db ldr r3, [r3, #12] 80108ce: 68fa ldr r2, [r7, #12] 80108d0: 4313 orrs r3, r2 80108d2: 60fb str r3, [r7, #12] } /* Set the auto-reload preload */ MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); 80108d4: 68fb ldr r3, [r7, #12] 80108d6: f023 0280 bic.w r2, r3, #128 ; 0x80 80108da: 683b ldr r3, [r7, #0] 80108dc: 695b ldr r3, [r3, #20] 80108de: 4313 orrs r3, r2 80108e0: 60fb str r3, [r7, #12] TIMx->CR1 = tmpcr1; 80108e2: 687b ldr r3, [r7, #4] 80108e4: 68fa ldr r2, [r7, #12] 80108e6: 601a str r2, [r3, #0] /* Set the Autoreload value */ TIMx->ARR = (uint32_t)Structure->Period ; 80108e8: 683b ldr r3, [r7, #0] 80108ea: 689a ldr r2, [r3, #8] 80108ec: 687b ldr r3, [r7, #4] 80108ee: 62da str r2, [r3, #44] ; 0x2c /* Set the Prescaler value */ TIMx->PSC = Structure->Prescaler; 80108f0: 683b ldr r3, [r7, #0] 80108f2: 681a ldr r2, [r3, #0] 80108f4: 687b ldr r3, [r7, #4] 80108f6: 629a str r2, [r3, #40] ; 0x28 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) 80108f8: 687b ldr r3, [r7, #4] 80108fa: 4a0a ldr r2, [pc, #40] ; (8010924 ) 80108fc: 4293 cmp r3, r2 80108fe: d003 beq.n 8010908 8010900: 687b ldr r3, [r7, #4] 8010902: 4a0c ldr r2, [pc, #48] ; (8010934 ) 8010904: 4293 cmp r3, r2 8010906: d103 bne.n 8010910 { /* Set the Repetition Counter value */ TIMx->RCR = Structure->RepetitionCounter; 8010908: 683b ldr r3, [r7, #0] 801090a: 691a ldr r2, [r3, #16] 801090c: 687b ldr r3, [r7, #4] 801090e: 631a str r2, [r3, #48] ; 0x30 } /* Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately */ TIMx->EGR = TIM_EGR_UG; 8010910: 687b ldr r3, [r7, #4] 8010912: 2201 movs r2, #1 8010914: 615a str r2, [r3, #20] } 8010916: bf00 nop 8010918: 3714 adds r7, #20 801091a: 46bd mov sp, r7 801091c: f85d 7b04 ldr.w r7, [sp], #4 8010920: 4770 bx lr 8010922: bf00 nop 8010924: 40010000 .word 0x40010000 8010928: 40000400 .word 0x40000400 801092c: 40000800 .word 0x40000800 8010930: 40000c00 .word 0x40000c00 8010934: 40010400 .word 0x40010400 8010938: 40014000 .word 0x40014000 801093c: 40014400 .word 0x40014400 8010940: 40014800 .word 0x40014800 8010944: 40001800 .word 0x40001800 8010948: 40001c00 .word 0x40001c00 801094c: 40002000 .word 0x40002000 08010950 : * mode. * @retval HAL status */ HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, TIM_MasterConfigTypeDef *sMasterConfig) { 8010950: b480 push {r7} 8010952: b085 sub sp, #20 8010954: af00 add r7, sp, #0 8010956: 6078 str r0, [r7, #4] 8010958: 6039 str r1, [r7, #0] assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); /* Check input state */ __HAL_LOCK(htim); 801095a: 687b ldr r3, [r7, #4] 801095c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c 8010960: 2b01 cmp r3, #1 8010962: d101 bne.n 8010968 8010964: 2302 movs r3, #2 8010966: e06d b.n 8010a44 8010968: 687b ldr r3, [r7, #4] 801096a: 2201 movs r2, #1 801096c: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Change the handler state */ htim->State = HAL_TIM_STATE_BUSY; 8010970: 687b ldr r3, [r7, #4] 8010972: 2202 movs r2, #2 8010974: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Get the TIMx CR2 register value */ tmpcr2 = htim->Instance->CR2; 8010978: 687b ldr r3, [r7, #4] 801097a: 681b ldr r3, [r3, #0] 801097c: 685b ldr r3, [r3, #4] 801097e: 60fb str r3, [r7, #12] /* Get the TIMx SMCR register value */ tmpsmcr = htim->Instance->SMCR; 8010980: 687b ldr r3, [r7, #4] 8010982: 681b ldr r3, [r3, #0] 8010984: 689b ldr r3, [r3, #8] 8010986: 60bb str r3, [r7, #8] /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) 8010988: 687b ldr r3, [r7, #4] 801098a: 681b ldr r3, [r3, #0] 801098c: 4a30 ldr r2, [pc, #192] ; (8010a50 ) 801098e: 4293 cmp r3, r2 8010990: d004 beq.n 801099c 8010992: 687b ldr r3, [r7, #4] 8010994: 681b ldr r3, [r3, #0] 8010996: 4a2f ldr r2, [pc, #188] ; (8010a54 ) 8010998: 4293 cmp r3, r2 801099a: d108 bne.n 80109ae { /* Check the parameters */ assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); /* Clear the MMS2 bits */ tmpcr2 &= ~TIM_CR2_MMS2; 801099c: 68fb ldr r3, [r7, #12] 801099e: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000 80109a2: 60fb str r3, [r7, #12] /* Select the TRGO2 source*/ tmpcr2 |= sMasterConfig->MasterOutputTrigger2; 80109a4: 683b ldr r3, [r7, #0] 80109a6: 685b ldr r3, [r3, #4] 80109a8: 68fa ldr r2, [r7, #12] 80109aa: 4313 orrs r3, r2 80109ac: 60fb str r3, [r7, #12] } /* Reset the MMS Bits */ tmpcr2 &= ~TIM_CR2_MMS; 80109ae: 68fb ldr r3, [r7, #12] 80109b0: f023 0370 bic.w r3, r3, #112 ; 0x70 80109b4: 60fb str r3, [r7, #12] /* Select the TRGO source */ tmpcr2 |= sMasterConfig->MasterOutputTrigger; 80109b6: 683b ldr r3, [r7, #0] 80109b8: 681b ldr r3, [r3, #0] 80109ba: 68fa ldr r2, [r7, #12] 80109bc: 4313 orrs r3, r2 80109be: 60fb str r3, [r7, #12] /* Update TIMx CR2 */ htim->Instance->CR2 = tmpcr2; 80109c0: 687b ldr r3, [r7, #4] 80109c2: 681b ldr r3, [r3, #0] 80109c4: 68fa ldr r2, [r7, #12] 80109c6: 605a str r2, [r3, #4] if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) 80109c8: 687b ldr r3, [r7, #4] 80109ca: 681b ldr r3, [r3, #0] 80109cc: 4a20 ldr r2, [pc, #128] ; (8010a50 ) 80109ce: 4293 cmp r3, r2 80109d0: d022 beq.n 8010a18 80109d2: 687b ldr r3, [r7, #4] 80109d4: 681b ldr r3, [r3, #0] 80109d6: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 80109da: d01d beq.n 8010a18 80109dc: 687b ldr r3, [r7, #4] 80109de: 681b ldr r3, [r3, #0] 80109e0: 4a1d ldr r2, [pc, #116] ; (8010a58 ) 80109e2: 4293 cmp r3, r2 80109e4: d018 beq.n 8010a18 80109e6: 687b ldr r3, [r7, #4] 80109e8: 681b ldr r3, [r3, #0] 80109ea: 4a1c ldr r2, [pc, #112] ; (8010a5c ) 80109ec: 4293 cmp r3, r2 80109ee: d013 beq.n 8010a18 80109f0: 687b ldr r3, [r7, #4] 80109f2: 681b ldr r3, [r3, #0] 80109f4: 4a1a ldr r2, [pc, #104] ; (8010a60 ) 80109f6: 4293 cmp r3, r2 80109f8: d00e beq.n 8010a18 80109fa: 687b ldr r3, [r7, #4] 80109fc: 681b ldr r3, [r3, #0] 80109fe: 4a15 ldr r2, [pc, #84] ; (8010a54 ) 8010a00: 4293 cmp r3, r2 8010a02: d009 beq.n 8010a18 8010a04: 687b ldr r3, [r7, #4] 8010a06: 681b ldr r3, [r3, #0] 8010a08: 4a16 ldr r2, [pc, #88] ; (8010a64 ) 8010a0a: 4293 cmp r3, r2 8010a0c: d004 beq.n 8010a18 8010a0e: 687b ldr r3, [r7, #4] 8010a10: 681b ldr r3, [r3, #0] 8010a12: 4a15 ldr r2, [pc, #84] ; (8010a68 ) 8010a14: 4293 cmp r3, r2 8010a16: d10c bne.n 8010a32 { /* Reset the MSM Bit */ tmpsmcr &= ~TIM_SMCR_MSM; 8010a18: 68bb ldr r3, [r7, #8] 8010a1a: f023 0380 bic.w r3, r3, #128 ; 0x80 8010a1e: 60bb str r3, [r7, #8] /* Set master mode */ tmpsmcr |= sMasterConfig->MasterSlaveMode; 8010a20: 683b ldr r3, [r7, #0] 8010a22: 689b ldr r3, [r3, #8] 8010a24: 68ba ldr r2, [r7, #8] 8010a26: 4313 orrs r3, r2 8010a28: 60bb str r3, [r7, #8] /* Update TIMx SMCR */ htim->Instance->SMCR = tmpsmcr; 8010a2a: 687b ldr r3, [r7, #4] 8010a2c: 681b ldr r3, [r3, #0] 8010a2e: 68ba ldr r2, [r7, #8] 8010a30: 609a str r2, [r3, #8] } /* Change the htim state */ htim->State = HAL_TIM_STATE_READY; 8010a32: 687b ldr r3, [r7, #4] 8010a34: 2201 movs r2, #1 8010a36: f883 203d strb.w r2, [r3, #61] ; 0x3d __HAL_UNLOCK(htim); 8010a3a: 687b ldr r3, [r7, #4] 8010a3c: 2200 movs r2, #0 8010a3e: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; 8010a42: 2300 movs r3, #0 } 8010a44: 4618 mov r0, r3 8010a46: 3714 adds r7, #20 8010a48: 46bd mov sp, r7 8010a4a: f85d 7b04 ldr.w r7, [sp], #4 8010a4e: 4770 bx lr 8010a50: 40010000 .word 0x40010000 8010a54: 40010400 .word 0x40010400 8010a58: 40000400 .word 0x40000400 8010a5c: 40000800 .word 0x40000800 8010a60: 40000c00 .word 0x40000c00 8010a64: 40014000 .word 0x40014000 8010a68: 40001800 .word 0x40001800 08010a6c : * @brief Hall commutation changed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) { 8010a6c: b480 push {r7} 8010a6e: b083 sub sp, #12 8010a70: af00 add r7, sp, #0 8010a72: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_CommutCallback could be implemented in the user file */ } 8010a74: bf00 nop 8010a76: 370c adds r7, #12 8010a78: 46bd mov sp, r7 8010a7a: f85d 7b04 ldr.w r7, [sp], #4 8010a7e: 4770 bx lr 08010a80 : * @brief Hall Break detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) { 8010a80: b480 push {r7} 8010a82: b083 sub sp, #12 8010a84: af00 add r7, sp, #0 8010a86: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_BreakCallback could be implemented in the user file */ } 8010a88: bf00 nop 8010a8a: 370c adds r7, #12 8010a8c: 46bd mov sp, r7 8010a8e: f85d 7b04 ldr.w r7, [sp], #4 8010a92: 4770 bx lr 08010a94 : * @brief Hall Break2 detection callback in non blocking mode * @param htim: TIM handle * @retval None */ __weak void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim) { 8010a94: b480 push {r7} 8010a96: b083 sub sp, #12 8010a98: af00 add r7, sp, #0 8010a9a: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function Should not be modified, when the callback is needed, the HAL_TIMEx_Break2Callback could be implemented in the user file */ } 8010a9c: bf00 nop 8010a9e: 370c adds r7, #12 8010aa0: 46bd mov sp, r7 8010aa2: f85d 7b04 ldr.w r7, [sp], #4 8010aa6: 4770 bx lr 08010aa8 : * parameters in the UART_InitTypeDef and initialize the associated handle. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) { 8010aa8: b580 push {r7, lr} 8010aaa: b082 sub sp, #8 8010aac: af00 add r7, sp, #0 8010aae: 6078 str r0, [r7, #4] /* Check the UART handle allocation */ if (huart == NULL) 8010ab0: 687b ldr r3, [r7, #4] 8010ab2: 2b00 cmp r3, #0 8010ab4: d101 bne.n 8010aba { return HAL_ERROR; 8010ab6: 2301 movs r3, #1 8010ab8: e040 b.n 8010b3c { /* Check the parameters */ assert_param(IS_UART_INSTANCE(huart->Instance)); } if (huart->gState == HAL_UART_STATE_RESET) 8010aba: 687b ldr r3, [r7, #4] 8010abc: 6f9b ldr r3, [r3, #120] ; 0x78 8010abe: 2b00 cmp r3, #0 8010ac0: d106 bne.n 8010ad0 { /* Allocate lock resource and initialize it */ huart->Lock = HAL_UNLOCKED; 8010ac2: 687b ldr r3, [r7, #4] 8010ac4: 2200 movs r2, #0 8010ac6: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* Init the low level hardware */ huart->MspInitCallback(huart); #else /* Init the low level hardware : GPIO, CLOCK */ HAL_UART_MspInit(huart); 8010aca: 6878 ldr r0, [r7, #4] 8010acc: f7fb fb7e bl 800c1cc #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } huart->gState = HAL_UART_STATE_BUSY; 8010ad0: 687b ldr r3, [r7, #4] 8010ad2: 2224 movs r2, #36 ; 0x24 8010ad4: 679a str r2, [r3, #120] ; 0x78 __HAL_UART_DISABLE(huart); 8010ad6: 687b ldr r3, [r7, #4] 8010ad8: 681b ldr r3, [r3, #0] 8010ada: 687a ldr r2, [r7, #4] 8010adc: 6812 ldr r2, [r2, #0] 8010ade: 6812 ldr r2, [r2, #0] 8010ae0: f022 0201 bic.w r2, r2, #1 8010ae4: 601a str r2, [r3, #0] /* Set the UART Communication parameters */ if (UART_SetConfig(huart) == HAL_ERROR) 8010ae6: 6878 ldr r0, [r7, #4] 8010ae8: f000 fd90 bl 801160c 8010aec: 4603 mov r3, r0 8010aee: 2b01 cmp r3, #1 8010af0: d101 bne.n 8010af6 { return HAL_ERROR; 8010af2: 2301 movs r3, #1 8010af4: e022 b.n 8010b3c } if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) 8010af6: 687b ldr r3, [r7, #4] 8010af8: 6a5b ldr r3, [r3, #36] ; 0x24 8010afa: 2b00 cmp r3, #0 8010afc: d002 beq.n 8010b04 { UART_AdvFeatureConfig(huart); 8010afe: 6878 ldr r0, [r7, #4] 8010b00: f000 ffe4 bl 8011acc } /* In asynchronous mode, the following bits must be kept cleared: - LINEN and CLKEN bits in the USART_CR2 register, - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 8010b04: 687b ldr r3, [r7, #4] 8010b06: 681b ldr r3, [r3, #0] 8010b08: 687a ldr r2, [r7, #4] 8010b0a: 6812 ldr r2, [r2, #0] 8010b0c: 6852 ldr r2, [r2, #4] 8010b0e: f422 4290 bic.w r2, r2, #18432 ; 0x4800 8010b12: 605a str r2, [r3, #4] CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 8010b14: 687b ldr r3, [r7, #4] 8010b16: 681b ldr r3, [r3, #0] 8010b18: 687a ldr r2, [r7, #4] 8010b1a: 6812 ldr r2, [r2, #0] 8010b1c: 6892 ldr r2, [r2, #8] 8010b1e: f022 022a bic.w r2, r2, #42 ; 0x2a 8010b22: 609a str r2, [r3, #8] __HAL_UART_ENABLE(huart); 8010b24: 687b ldr r3, [r7, #4] 8010b26: 681b ldr r3, [r3, #0] 8010b28: 687a ldr r2, [r7, #4] 8010b2a: 6812 ldr r2, [r2, #0] 8010b2c: 6812 ldr r2, [r2, #0] 8010b2e: f042 0201 orr.w r2, r2, #1 8010b32: 601a str r2, [r3, #0] /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ return (UART_CheckIdleState(huart)); 8010b34: 6878 ldr r0, [r7, #4] 8010b36: f001 f86b bl 8011c10 8010b3a: 4603 mov r3, r0 } 8010b3c: 4618 mov r0, r3 8010b3e: 3708 adds r7, #8 8010b40: 46bd mov sp, r7 8010b42: bd80 pop {r7, pc} 08010b44 : * @param Size Amount of data elements (u8 or u16) to be received. * @param Timeout Timeout duration. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) { 8010b44: b580 push {r7, lr} 8010b46: b08a sub sp, #40 ; 0x28 8010b48: af02 add r7, sp, #8 8010b4a: 60f8 str r0, [r7, #12] 8010b4c: 60b9 str r1, [r7, #8] 8010b4e: 603b str r3, [r7, #0] 8010b50: 4613 mov r3, r2 8010b52: 80fb strh r3, [r7, #6] uint16_t *pdata16bits; uint16_t uhMask; uint32_t tickstart; /* Check that a Rx process is not already ongoing */ if (huart->RxState == HAL_UART_STATE_READY) 8010b54: 68fb ldr r3, [r7, #12] 8010b56: 6fdb ldr r3, [r3, #124] ; 0x7c 8010b58: 2b20 cmp r3, #32 8010b5a: f040 80be bne.w 8010cda { if ((pData == NULL) || (Size == 0U)) 8010b5e: 68bb ldr r3, [r7, #8] 8010b60: 2b00 cmp r3, #0 8010b62: d002 beq.n 8010b6a 8010b64: 88fb ldrh r3, [r7, #6] 8010b66: 2b00 cmp r3, #0 8010b68: d101 bne.n 8010b6e { return HAL_ERROR; 8010b6a: 2301 movs r3, #1 8010b6c: e0b6 b.n 8010cdc } __HAL_LOCK(huart); 8010b6e: 68fb ldr r3, [r7, #12] 8010b70: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 8010b74: 2b01 cmp r3, #1 8010b76: d101 bne.n 8010b7c 8010b78: 2302 movs r3, #2 8010b7a: e0af b.n 8010cdc 8010b7c: 68fb ldr r3, [r7, #12] 8010b7e: 2201 movs r2, #1 8010b80: f883 2074 strb.w r2, [r3, #116] ; 0x74 huart->ErrorCode = HAL_UART_ERROR_NONE; 8010b84: 68fb ldr r3, [r7, #12] 8010b86: 2200 movs r2, #0 8010b88: f8c3 2080 str.w r2, [r3, #128] ; 0x80 huart->RxState = HAL_UART_STATE_BUSY_RX; 8010b8c: 68fb ldr r3, [r7, #12] 8010b8e: 2222 movs r2, #34 ; 0x22 8010b90: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8010b92: 68fb ldr r3, [r7, #12] 8010b94: 2200 movs r2, #0 8010b96: 661a str r2, [r3, #96] ; 0x60 /* Init tickstart for timeout management */ tickstart = HAL_GetTick(); 8010b98: f7fc ff84 bl 800daa4 8010b9c: 6178 str r0, [r7, #20] huart->RxXferSize = Size; 8010b9e: 68fb ldr r3, [r7, #12] 8010ba0: 88fa ldrh r2, [r7, #6] 8010ba2: f8a3 2058 strh.w r2, [r3, #88] ; 0x58 huart->RxXferCount = Size; 8010ba6: 68fb ldr r3, [r7, #12] 8010ba8: 88fa ldrh r2, [r7, #6] 8010baa: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Computation of UART mask to apply to RDR register */ UART_MASK_COMPUTATION(huart); 8010bae: 68fb ldr r3, [r7, #12] 8010bb0: 689b ldr r3, [r3, #8] 8010bb2: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8010bb6: d10e bne.n 8010bd6 8010bb8: 68fb ldr r3, [r7, #12] 8010bba: 691b ldr r3, [r3, #16] 8010bbc: 2b00 cmp r3, #0 8010bbe: d105 bne.n 8010bcc 8010bc0: 68fb ldr r3, [r7, #12] 8010bc2: f240 12ff movw r2, #511 ; 0x1ff 8010bc6: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8010bca: e02d b.n 8010c28 8010bcc: 68fb ldr r3, [r7, #12] 8010bce: 22ff movs r2, #255 ; 0xff 8010bd0: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8010bd4: e028 b.n 8010c28 8010bd6: 68fb ldr r3, [r7, #12] 8010bd8: 689b ldr r3, [r3, #8] 8010bda: 2b00 cmp r3, #0 8010bdc: d10d bne.n 8010bfa 8010bde: 68fb ldr r3, [r7, #12] 8010be0: 691b ldr r3, [r3, #16] 8010be2: 2b00 cmp r3, #0 8010be4: d104 bne.n 8010bf0 8010be6: 68fb ldr r3, [r7, #12] 8010be8: 22ff movs r2, #255 ; 0xff 8010bea: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8010bee: e01b b.n 8010c28 8010bf0: 68fb ldr r3, [r7, #12] 8010bf2: 227f movs r2, #127 ; 0x7f 8010bf4: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8010bf8: e016 b.n 8010c28 8010bfa: 68fb ldr r3, [r7, #12] 8010bfc: 689b ldr r3, [r3, #8] 8010bfe: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000 8010c02: d10d bne.n 8010c20 8010c04: 68fb ldr r3, [r7, #12] 8010c06: 691b ldr r3, [r3, #16] 8010c08: 2b00 cmp r3, #0 8010c0a: d104 bne.n 8010c16 8010c0c: 68fb ldr r3, [r7, #12] 8010c0e: 227f movs r2, #127 ; 0x7f 8010c10: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8010c14: e008 b.n 8010c28 8010c16: 68fb ldr r3, [r7, #12] 8010c18: 223f movs r2, #63 ; 0x3f 8010c1a: f8a3 205c strh.w r2, [r3, #92] ; 0x5c 8010c1e: e003 b.n 8010c28 8010c20: 68fb ldr r3, [r7, #12] 8010c22: 2200 movs r2, #0 8010c24: f8a3 205c strh.w r2, [r3, #92] ; 0x5c uhMask = huart->Mask; 8010c28: 68fb ldr r3, [r7, #12] 8010c2a: f8b3 305c ldrh.w r3, [r3, #92] ; 0x5c 8010c2e: 827b strh r3, [r7, #18] /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 8010c30: 68fb ldr r3, [r7, #12] 8010c32: 689b ldr r3, [r3, #8] 8010c34: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8010c38: d108 bne.n 8010c4c 8010c3a: 68fb ldr r3, [r7, #12] 8010c3c: 691b ldr r3, [r3, #16] 8010c3e: 2b00 cmp r3, #0 8010c40: d104 bne.n 8010c4c { pdata8bits = NULL; 8010c42: 2300 movs r3, #0 8010c44: 61fb str r3, [r7, #28] pdata16bits = (uint16_t *) pData; 8010c46: 68bb ldr r3, [r7, #8] 8010c48: 61bb str r3, [r7, #24] 8010c4a: e003 b.n 8010c54 } else { pdata8bits = pData; 8010c4c: 68bb ldr r3, [r7, #8] 8010c4e: 61fb str r3, [r7, #28] pdata16bits = NULL; 8010c50: 2300 movs r3, #0 8010c52: 61bb str r3, [r7, #24] } __HAL_UNLOCK(huart); 8010c54: 68fb ldr r3, [r7, #12] 8010c56: 2200 movs r2, #0 8010c58: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* as long as data have to be received */ while (huart->RxXferCount > 0U) 8010c5c: e032 b.n 8010cc4 { if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) 8010c5e: 683b ldr r3, [r7, #0] 8010c60: 9300 str r3, [sp, #0] 8010c62: 697b ldr r3, [r7, #20] 8010c64: 2200 movs r2, #0 8010c66: 2120 movs r1, #32 8010c68: 68f8 ldr r0, [r7, #12] 8010c6a: f001 f81a bl 8011ca2 8010c6e: 4603 mov r3, r0 8010c70: 2b00 cmp r3, #0 8010c72: d001 beq.n 8010c78 { return HAL_TIMEOUT; 8010c74: 2303 movs r3, #3 8010c76: e031 b.n 8010cdc } if (pdata8bits == NULL) 8010c78: 69fb ldr r3, [r7, #28] 8010c7a: 2b00 cmp r3, #0 8010c7c: d10c bne.n 8010c98 { *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); 8010c7e: 68fb ldr r3, [r7, #12] 8010c80: 681b ldr r3, [r3, #0] 8010c82: 6a5b ldr r3, [r3, #36] ; 0x24 8010c84: b29a uxth r2, r3 8010c86: 8a7b ldrh r3, [r7, #18] 8010c88: 4013 ands r3, r2 8010c8a: b29a uxth r2, r3 8010c8c: 69bb ldr r3, [r7, #24] 8010c8e: 801a strh r2, [r3, #0] pdata16bits++; 8010c90: 69bb ldr r3, [r7, #24] 8010c92: 3302 adds r3, #2 8010c94: 61bb str r3, [r7, #24] 8010c96: e00c b.n 8010cb2 } else { *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); 8010c98: 68fb ldr r3, [r7, #12] 8010c9a: 681b ldr r3, [r3, #0] 8010c9c: 6a5b ldr r3, [r3, #36] ; 0x24 8010c9e: b2da uxtb r2, r3 8010ca0: 8a7b ldrh r3, [r7, #18] 8010ca2: b2db uxtb r3, r3 8010ca4: 4013 ands r3, r2 8010ca6: b2da uxtb r2, r3 8010ca8: 69fb ldr r3, [r7, #28] 8010caa: 701a strb r2, [r3, #0] pdata8bits++; 8010cac: 69fb ldr r3, [r7, #28] 8010cae: 3301 adds r3, #1 8010cb0: 61fb str r3, [r7, #28] } huart->RxXferCount--; 8010cb2: 68fb ldr r3, [r7, #12] 8010cb4: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8010cb8: b29b uxth r3, r3 8010cba: 3b01 subs r3, #1 8010cbc: b29a uxth r2, r3 8010cbe: 68fb ldr r3, [r7, #12] 8010cc0: f8a3 205a strh.w r2, [r3, #90] ; 0x5a while (huart->RxXferCount > 0U) 8010cc4: 68fb ldr r3, [r7, #12] 8010cc6: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8010cca: b29b uxth r3, r3 8010ccc: 2b00 cmp r3, #0 8010cce: d1c6 bne.n 8010c5e } /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 8010cd0: 68fb ldr r3, [r7, #12] 8010cd2: 2220 movs r2, #32 8010cd4: 67da str r2, [r3, #124] ; 0x7c return HAL_OK; 8010cd6: 2300 movs r3, #0 8010cd8: e000 b.n 8010cdc } else { return HAL_BUSY; 8010cda: 2302 movs r3, #2 } } 8010cdc: 4618 mov r0, r3 8010cde: 3720 adds r7, #32 8010ce0: 46bd mov sp, r7 8010ce2: bd80 pop {r7, pc} 08010ce4 : * @param pData Pointer to data buffer (u8 or u16 data elements). * @param Size Amount of data elements (u8 or u16) to be sent. * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size) { 8010ce4: b480 push {r7} 8010ce6: b08b sub sp, #44 ; 0x2c 8010ce8: af00 add r7, sp, #0 8010cea: 60f8 str r0, [r7, #12] 8010cec: 60b9 str r1, [r7, #8] 8010cee: 4613 mov r3, r2 8010cf0: 80fb strh r3, [r7, #6] /* Check that a Tx process is not already ongoing */ if (huart->gState == HAL_UART_STATE_READY) 8010cf2: 68fb ldr r3, [r7, #12] 8010cf4: 6f9b ldr r3, [r3, #120] ; 0x78 8010cf6: 2b20 cmp r3, #32 8010cf8: d156 bne.n 8010da8 { if ((pData == NULL) || (Size == 0U)) 8010cfa: 68bb ldr r3, [r7, #8] 8010cfc: 2b00 cmp r3, #0 8010cfe: d002 beq.n 8010d06 8010d00: 88fb ldrh r3, [r7, #6] 8010d02: 2b00 cmp r3, #0 8010d04: d101 bne.n 8010d0a { return HAL_ERROR; 8010d06: 2301 movs r3, #1 8010d08: e04f b.n 8010daa } __HAL_LOCK(huart); 8010d0a: 68fb ldr r3, [r7, #12] 8010d0c: f893 3074 ldrb.w r3, [r3, #116] ; 0x74 8010d10: 2b01 cmp r3, #1 8010d12: d101 bne.n 8010d18 8010d14: 2302 movs r3, #2 8010d16: e048 b.n 8010daa 8010d18: 68fb ldr r3, [r7, #12] 8010d1a: 2201 movs r2, #1 8010d1c: f883 2074 strb.w r2, [r3, #116] ; 0x74 huart->pTxBuffPtr = pData; 8010d20: 68fb ldr r3, [r7, #12] 8010d22: 68ba ldr r2, [r7, #8] 8010d24: 64da str r2, [r3, #76] ; 0x4c huart->TxXferSize = Size; 8010d26: 68fb ldr r3, [r7, #12] 8010d28: 88fa ldrh r2, [r7, #6] 8010d2a: f8a3 2050 strh.w r2, [r3, #80] ; 0x50 huart->TxXferCount = Size; 8010d2e: 68fb ldr r3, [r7, #12] 8010d30: 88fa ldrh r2, [r7, #6] 8010d32: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->TxISR = NULL; 8010d36: 68fb ldr r3, [r7, #12] 8010d38: 2200 movs r2, #0 8010d3a: 669a str r2, [r3, #104] ; 0x68 huart->ErrorCode = HAL_UART_ERROR_NONE; 8010d3c: 68fb ldr r3, [r7, #12] 8010d3e: 2200 movs r2, #0 8010d40: f8c3 2080 str.w r2, [r3, #128] ; 0x80 huart->gState = HAL_UART_STATE_BUSY_TX; 8010d44: 68fb ldr r3, [r7, #12] 8010d46: 2221 movs r2, #33 ; 0x21 8010d48: 679a str r2, [r3, #120] ; 0x78 /* Set the Tx ISR function pointer according to the data word length */ if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 8010d4a: 68fb ldr r3, [r7, #12] 8010d4c: 689b ldr r3, [r3, #8] 8010d4e: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8010d52: d107 bne.n 8010d64 8010d54: 68fb ldr r3, [r7, #12] 8010d56: 691b ldr r3, [r3, #16] 8010d58: 2b00 cmp r3, #0 8010d5a: d103 bne.n 8010d64 { huart->TxISR = UART_TxISR_16BIT; 8010d5c: 68fb ldr r3, [r7, #12] 8010d5e: 4a16 ldr r2, [pc, #88] ; (8010db8 ) 8010d60: 669a str r2, [r3, #104] ; 0x68 8010d62: e002 b.n 8010d6a } else { huart->TxISR = UART_TxISR_8BIT; 8010d64: 68fb ldr r3, [r7, #12] 8010d66: 4a15 ldr r2, [pc, #84] ; (8010dbc ) 8010d68: 669a str r2, [r3, #104] ; 0x68 } __HAL_UNLOCK(huart); 8010d6a: 68fb ldr r3, [r7, #12] 8010d6c: 2200 movs r2, #0 8010d6e: f883 2074 strb.w r2, [r3, #116] ; 0x74 /* Enable the Transmit Data Register Empty interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 8010d72: 68fb ldr r3, [r7, #12] 8010d74: 681b ldr r3, [r3, #0] 8010d76: 617b str r3, [r7, #20] */ __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) { uint32_t result; __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8010d78: 697b ldr r3, [r7, #20] 8010d7a: e853 3f00 ldrex r3, [r3] 8010d7e: 613b str r3, [r7, #16] return(result); 8010d80: 693b ldr r3, [r7, #16] 8010d82: f043 0380 orr.w r3, r3, #128 ; 0x80 8010d86: 627b str r3, [r7, #36] ; 0x24 8010d88: 68fb ldr r3, [r7, #12] 8010d8a: 681b ldr r3, [r3, #0] 8010d8c: 461a mov r2, r3 8010d8e: 6a7b ldr r3, [r7, #36] ; 0x24 8010d90: 623b str r3, [r7, #32] 8010d92: 61fa str r2, [r7, #28] */ __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) { uint32_t result; __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8010d94: 69f9 ldr r1, [r7, #28] 8010d96: 6a3a ldr r2, [r7, #32] 8010d98: e841 2300 strex r3, r2, [r1] 8010d9c: 61bb str r3, [r7, #24] return(result); 8010d9e: 69bb ldr r3, [r7, #24] 8010da0: 2b00 cmp r3, #0 8010da2: d1e6 bne.n 8010d72 return HAL_OK; 8010da4: 2300 movs r3, #0 8010da6: e000 b.n 8010daa } else { return HAL_BUSY; 8010da8: 2302 movs r3, #2 } } 8010daa: 4618 mov r0, r3 8010dac: 372c adds r7, #44 ; 0x2c 8010dae: 46bd mov sp, r7 8010db0: f85d 7b04 ldr.w r7, [sp], #4 8010db4: 4770 bx lr 8010db6: bf00 nop 8010db8: 080120b7 .word 0x080120b7 8010dbc: 08012001 .word 0x08012001 08010dc0 : * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be * considered as completed only when user abort complete callback is executed (not when exiting function). * @retval HAL status */ HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) { 8010dc0: b580 push {r7, lr} 8010dc2: b0a2 sub sp, #136 ; 0x88 8010dc4: af00 add r7, sp, #0 8010dc6: 6078 str r0, [r7, #4] uint32_t abortcplt = 1U; 8010dc8: 2301 movs r3, #1 8010dca: f8c7 3084 str.w r3, [r7, #132] ; 0x84 /* Disable interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE)); 8010dce: 687b ldr r3, [r7, #4] 8010dd0: 681b ldr r3, [r3, #0] 8010dd2: 663b str r3, [r7, #96] ; 0x60 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8010dd4: 6e3b ldr r3, [r7, #96] ; 0x60 8010dd6: e853 3f00 ldrex r3, [r3] 8010dda: 65fb str r3, [r7, #92] ; 0x5c return(result); 8010ddc: 6dfb ldr r3, [r7, #92] ; 0x5c 8010dde: f423 73f0 bic.w r3, r3, #480 ; 0x1e0 8010de2: f8c7 3080 str.w r3, [r7, #128] ; 0x80 8010de6: 687b ldr r3, [r7, #4] 8010de8: 681b ldr r3, [r3, #0] 8010dea: 461a mov r2, r3 8010dec: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80 8010df0: 66fb str r3, [r7, #108] ; 0x6c 8010df2: 66ba str r2, [r7, #104] ; 0x68 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8010df4: 6eb9 ldr r1, [r7, #104] ; 0x68 8010df6: 6efa ldr r2, [r7, #108] ; 0x6c 8010df8: e841 2300 strex r3, r2, [r1] 8010dfc: 667b str r3, [r7, #100] ; 0x64 return(result); 8010dfe: 6e7b ldr r3, [r7, #100] ; 0x64 8010e00: 2b00 cmp r3, #0 8010e02: d1e4 bne.n 8010dce ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8010e04: 687b ldr r3, [r7, #4] 8010e06: 681b ldr r3, [r3, #0] 8010e08: 3308 adds r3, #8 8010e0a: 64fb str r3, [r7, #76] ; 0x4c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8010e0c: 6cfb ldr r3, [r7, #76] ; 0x4c 8010e0e: e853 3f00 ldrex r3, [r3] 8010e12: 64bb str r3, [r7, #72] ; 0x48 return(result); 8010e14: 6cbb ldr r3, [r7, #72] ; 0x48 8010e16: f023 0301 bic.w r3, r3, #1 8010e1a: 67fb str r3, [r7, #124] ; 0x7c 8010e1c: 687b ldr r3, [r7, #4] 8010e1e: 681b ldr r3, [r3, #0] 8010e20: 3308 adds r3, #8 8010e22: 6ffa ldr r2, [r7, #124] ; 0x7c 8010e24: 65ba str r2, [r7, #88] ; 0x58 8010e26: 657b str r3, [r7, #84] ; 0x54 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8010e28: 6d79 ldr r1, [r7, #84] ; 0x54 8010e2a: 6dba ldr r2, [r7, #88] ; 0x58 8010e2c: e841 2300 strex r3, r2, [r1] 8010e30: 653b str r3, [r7, #80] ; 0x50 return(result); 8010e32: 6d3b ldr r3, [r7, #80] ; 0x50 8010e34: 2b00 cmp r3, #0 8010e36: d1e5 bne.n 8010e04 /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 8010e38: 687b ldr r3, [r7, #4] 8010e3a: 6e1b ldr r3, [r3, #96] ; 0x60 8010e3c: 2b01 cmp r3, #1 8010e3e: d118 bne.n 8010e72 { ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 8010e40: 687b ldr r3, [r7, #4] 8010e42: 681b ldr r3, [r3, #0] 8010e44: 63bb str r3, [r7, #56] ; 0x38 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8010e46: 6bbb ldr r3, [r7, #56] ; 0x38 8010e48: e853 3f00 ldrex r3, [r3] 8010e4c: 637b str r3, [r7, #52] ; 0x34 return(result); 8010e4e: 6b7b ldr r3, [r7, #52] ; 0x34 8010e50: f023 0310 bic.w r3, r3, #16 8010e54: 67bb str r3, [r7, #120] ; 0x78 8010e56: 687b ldr r3, [r7, #4] 8010e58: 681b ldr r3, [r3, #0] 8010e5a: 461a mov r2, r3 8010e5c: 6fbb ldr r3, [r7, #120] ; 0x78 8010e5e: 647b str r3, [r7, #68] ; 0x44 8010e60: 643a str r2, [r7, #64] ; 0x40 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8010e62: 6c39 ldr r1, [r7, #64] ; 0x40 8010e64: 6c7a ldr r2, [r7, #68] ; 0x44 8010e66: e841 2300 strex r3, r2, [r1] 8010e6a: 63fb str r3, [r7, #60] ; 0x3c return(result); 8010e6c: 6bfb ldr r3, [r7, #60] ; 0x3c 8010e6e: 2b00 cmp r3, #0 8010e70: d1e6 bne.n 8010e40 } /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks should be initialised before any call to DMA Abort functions */ /* DMA Tx Handle is valid */ if (huart->hdmatx != NULL) 8010e72: 687b ldr r3, [r7, #4] 8010e74: 6edb ldr r3, [r3, #108] ; 0x6c 8010e76: 2b00 cmp r3, #0 8010e78: d00f beq.n 8010e9a { /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. Otherwise, set it to NULL */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 8010e7a: 687b ldr r3, [r7, #4] 8010e7c: 681b ldr r3, [r3, #0] 8010e7e: 689b ldr r3, [r3, #8] 8010e80: f003 0380 and.w r3, r3, #128 ; 0x80 8010e84: 2b80 cmp r3, #128 ; 0x80 8010e86: d104 bne.n 8010e92 { huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; 8010e88: 687b ldr r3, [r7, #4] 8010e8a: 6edb ldr r3, [r3, #108] ; 0x6c 8010e8c: 4a5d ldr r2, [pc, #372] ; (8011004 ) 8010e8e: 651a str r2, [r3, #80] ; 0x50 8010e90: e003 b.n 8010e9a } else { huart->hdmatx->XferAbortCallback = NULL; 8010e92: 687b ldr r3, [r7, #4] 8010e94: 6edb ldr r3, [r3, #108] ; 0x6c 8010e96: 2200 movs r2, #0 8010e98: 651a str r2, [r3, #80] ; 0x50 } } /* DMA Rx Handle is valid */ if (huart->hdmarx != NULL) 8010e9a: 687b ldr r3, [r7, #4] 8010e9c: 6f1b ldr r3, [r3, #112] ; 0x70 8010e9e: 2b00 cmp r3, #0 8010ea0: d00f beq.n 8010ec2 { /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. Otherwise, set it to NULL */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8010ea2: 687b ldr r3, [r7, #4] 8010ea4: 681b ldr r3, [r3, #0] 8010ea6: 689b ldr r3, [r3, #8] 8010ea8: f003 0340 and.w r3, r3, #64 ; 0x40 8010eac: 2b40 cmp r3, #64 ; 0x40 8010eae: d104 bne.n 8010eba { huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; 8010eb0: 687b ldr r3, [r7, #4] 8010eb2: 6f1b ldr r3, [r3, #112] ; 0x70 8010eb4: 4a54 ldr r2, [pc, #336] ; (8011008 ) 8010eb6: 651a str r2, [r3, #80] ; 0x50 8010eb8: e003 b.n 8010ec2 } else { huart->hdmarx->XferAbortCallback = NULL; 8010eba: 687b ldr r3, [r7, #4] 8010ebc: 6f1b ldr r3, [r3, #112] ; 0x70 8010ebe: 2200 movs r2, #0 8010ec0: 651a str r2, [r3, #80] ; 0x50 } } /* Abort the UART DMA Tx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 8010ec2: 687b ldr r3, [r7, #4] 8010ec4: 681b ldr r3, [r3, #0] 8010ec6: 689b ldr r3, [r3, #8] 8010ec8: f003 0380 and.w r3, r3, #128 ; 0x80 8010ecc: 2b80 cmp r3, #128 ; 0x80 8010ece: d12d bne.n 8010f2c { /* Disable DMA Tx at UART level */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 8010ed0: 687b ldr r3, [r7, #4] 8010ed2: 681b ldr r3, [r3, #0] 8010ed4: 3308 adds r3, #8 8010ed6: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8010ed8: 6a7b ldr r3, [r7, #36] ; 0x24 8010eda: e853 3f00 ldrex r3, [r3] 8010ede: 623b str r3, [r7, #32] return(result); 8010ee0: 6a3b ldr r3, [r7, #32] 8010ee2: f023 0380 bic.w r3, r3, #128 ; 0x80 8010ee6: 677b str r3, [r7, #116] ; 0x74 8010ee8: 687b ldr r3, [r7, #4] 8010eea: 681b ldr r3, [r3, #0] 8010eec: 3308 adds r3, #8 8010eee: 6f7a ldr r2, [r7, #116] ; 0x74 8010ef0: 633a str r2, [r7, #48] ; 0x30 8010ef2: 62fb str r3, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8010ef4: 6af9 ldr r1, [r7, #44] ; 0x2c 8010ef6: 6b3a ldr r2, [r7, #48] ; 0x30 8010ef8: e841 2300 strex r3, r2, [r1] 8010efc: 62bb str r3, [r7, #40] ; 0x28 return(result); 8010efe: 6abb ldr r3, [r7, #40] ; 0x28 8010f00: 2b00 cmp r3, #0 8010f02: d1e5 bne.n 8010ed0 /* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */ if (huart->hdmatx != NULL) 8010f04: 687b ldr r3, [r7, #4] 8010f06: 6edb ldr r3, [r3, #108] ; 0x6c 8010f08: 2b00 cmp r3, #0 8010f0a: d00f beq.n 8010f2c { /* UART Tx DMA Abort callback has already been initialised : will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ /* Abort DMA TX */ if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 8010f0c: 687b ldr r3, [r7, #4] 8010f0e: 6edb ldr r3, [r3, #108] ; 0x6c 8010f10: 4618 mov r0, r3 8010f12: f7fc ffa4 bl 800de5e 8010f16: 4603 mov r3, r0 8010f18: 2b00 cmp r3, #0 8010f1a: d004 beq.n 8010f26 { huart->hdmatx->XferAbortCallback = NULL; 8010f1c: 687b ldr r3, [r7, #4] 8010f1e: 6edb ldr r3, [r3, #108] ; 0x6c 8010f20: 2200 movs r2, #0 8010f22: 651a str r2, [r3, #80] ; 0x50 8010f24: e002 b.n 8010f2c } else { abortcplt = 0U; 8010f26: 2300 movs r3, #0 8010f28: f8c7 3084 str.w r3, [r7, #132] ; 0x84 } } } /* Abort the UART DMA Rx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8010f2c: 687b ldr r3, [r7, #4] 8010f2e: 681b ldr r3, [r3, #0] 8010f30: 689b ldr r3, [r3, #8] 8010f32: f003 0340 and.w r3, r3, #64 ; 0x40 8010f36: 2b40 cmp r3, #64 ; 0x40 8010f38: d130 bne.n 8010f9c { /* Disable the UART DMA Rx request if enabled */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 8010f3a: 687b ldr r3, [r7, #4] 8010f3c: 681b ldr r3, [r3, #0] 8010f3e: 3308 adds r3, #8 8010f40: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8010f42: 693b ldr r3, [r7, #16] 8010f44: e853 3f00 ldrex r3, [r3] 8010f48: 60fb str r3, [r7, #12] return(result); 8010f4a: 68fb ldr r3, [r7, #12] 8010f4c: f023 0340 bic.w r3, r3, #64 ; 0x40 8010f50: 673b str r3, [r7, #112] ; 0x70 8010f52: 687b ldr r3, [r7, #4] 8010f54: 681b ldr r3, [r3, #0] 8010f56: 3308 adds r3, #8 8010f58: 6f3a ldr r2, [r7, #112] ; 0x70 8010f5a: 61fa str r2, [r7, #28] 8010f5c: 61bb str r3, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8010f5e: 69b9 ldr r1, [r7, #24] 8010f60: 69fa ldr r2, [r7, #28] 8010f62: e841 2300 strex r3, r2, [r1] 8010f66: 617b str r3, [r7, #20] return(result); 8010f68: 697b ldr r3, [r7, #20] 8010f6a: 2b00 cmp r3, #0 8010f6c: d1e5 bne.n 8010f3a /* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */ if (huart->hdmarx != NULL) 8010f6e: 687b ldr r3, [r7, #4] 8010f70: 6f1b ldr r3, [r3, #112] ; 0x70 8010f72: 2b00 cmp r3, #0 8010f74: d012 beq.n 8010f9c { /* UART Rx DMA Abort callback has already been initialised : will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ /* Abort DMA RX */ if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 8010f76: 687b ldr r3, [r7, #4] 8010f78: 6f1b ldr r3, [r3, #112] ; 0x70 8010f7a: 4618 mov r0, r3 8010f7c: f7fc ff6f bl 800de5e 8010f80: 4603 mov r3, r0 8010f82: 2b00 cmp r3, #0 8010f84: d007 beq.n 8010f96 { huart->hdmarx->XferAbortCallback = NULL; 8010f86: 687b ldr r3, [r7, #4] 8010f88: 6f1b ldr r3, [r3, #112] ; 0x70 8010f8a: 2200 movs r2, #0 8010f8c: 651a str r2, [r3, #80] ; 0x50 abortcplt = 1U; 8010f8e: 2301 movs r3, #1 8010f90: f8c7 3084 str.w r3, [r7, #132] ; 0x84 8010f94: e002 b.n 8010f9c } else { abortcplt = 0U; 8010f96: 2300 movs r3, #0 8010f98: f8c7 3084 str.w r3, [r7, #132] ; 0x84 } } } /* if no DMA abort complete callback execution is required => call user Abort Complete callback */ if (abortcplt == 1U) 8010f9c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 8010fa0: 2b01 cmp r3, #1 8010fa2: d129 bne.n 8010ff8 { /* Reset Tx and Rx transfer counters */ huart->TxXferCount = 0U; 8010fa4: 687b ldr r3, [r7, #4] 8010fa6: 2200 movs r2, #0 8010fa8: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 8010fac: 687b ldr r3, [r7, #4] 8010fae: 2200 movs r2, #0 8010fb0: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Clear ISR function pointers */ huart->RxISR = NULL; 8010fb4: 687b ldr r3, [r7, #4] 8010fb6: 2200 movs r2, #0 8010fb8: 665a str r2, [r3, #100] ; 0x64 huart->TxISR = NULL; 8010fba: 687b ldr r3, [r7, #4] 8010fbc: 2200 movs r2, #0 8010fbe: 669a str r2, [r3, #104] ; 0x68 /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8010fc0: 687b ldr r3, [r7, #4] 8010fc2: 2200 movs r2, #0 8010fc4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 8010fc8: 687b ldr r3, [r7, #4] 8010fca: 681b ldr r3, [r3, #0] 8010fcc: 220f movs r2, #15 8010fce: 621a str r2, [r3, #32] /* Discard the received data */ __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 8010fd0: 687b ldr r3, [r7, #4] 8010fd2: 681b ldr r3, [r3, #0] 8010fd4: 687a ldr r2, [r7, #4] 8010fd6: 6812 ldr r2, [r2, #0] 8010fd8: 6992 ldr r2, [r2, #24] 8010fda: f042 0208 orr.w r2, r2, #8 8010fde: 619a str r2, [r3, #24] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 8010fe0: 687b ldr r3, [r7, #4] 8010fe2: 2220 movs r2, #32 8010fe4: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8010fe6: 687b ldr r3, [r7, #4] 8010fe8: 2220 movs r2, #32 8010fea: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8010fec: 687b ldr r3, [r7, #4] 8010fee: 2200 movs r2, #0 8010ff0: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 8010ff2: 6878 ldr r0, [r7, #4] 8010ff4: f000 faea bl 80115cc #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } return HAL_OK; 8010ff8: 2300 movs r3, #0 } 8010ffa: 4618 mov r0, r3 8010ffc: 3788 adds r7, #136 ; 0x88 8010ffe: 46bd mov sp, r7 8011000: bd80 pop {r7, pc} 8011002: bf00 nop 8011004: 08011f1d .word 0x08011f1d 8011008: 08011f87 .word 0x08011f87 0801100c : * @brief Handle UART interrupt request. * @param huart UART handle. * @retval None */ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) { 801100c: b580 push {r7, lr} 801100e: b0ba sub sp, #232 ; 0xe8 8011010: af00 add r7, sp, #0 8011012: 6078 str r0, [r7, #4] uint32_t isrflags = READ_REG(huart->Instance->ISR); 8011014: 687b ldr r3, [r7, #4] 8011016: 681b ldr r3, [r3, #0] 8011018: 69db ldr r3, [r3, #28] 801101a: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4 uint32_t cr1its = READ_REG(huart->Instance->CR1); 801101e: 687b ldr r3, [r7, #4] 8011020: 681b ldr r3, [r3, #0] 8011022: 681b ldr r3, [r3, #0] 8011024: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0 uint32_t cr3its = READ_REG(huart->Instance->CR3); 8011028: 687b ldr r3, [r7, #4] 801102a: 681b ldr r3, [r3, #0] 801102c: 689b ldr r3, [r3, #8] 801102e: f8c7 30dc str.w r3, [r7, #220] ; 0xdc uint32_t errorflags; uint32_t errorcode; /* If no error occurs */ errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | USART_ISR_RTOF)); 8011032: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4 8011036: f640 030f movw r3, #2063 ; 0x80f 801103a: 4013 ands r3, r2 801103c: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8 if (errorflags == 0U) 8011040: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 8011044: 2b00 cmp r3, #0 8011046: d115 bne.n 8011074 { /* UART in mode Receiver ---------------------------------------------------*/ if (((isrflags & USART_ISR_RXNE) != 0U) 8011048: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801104c: f003 0320 and.w r3, r3, #32 8011050: 2b00 cmp r3, #0 8011052: d00f beq.n 8011074 && ((cr1its & USART_CR1_RXNEIE) != 0U)) 8011054: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8011058: f003 0320 and.w r3, r3, #32 801105c: 2b00 cmp r3, #0 801105e: d009 beq.n 8011074 { if (huart->RxISR != NULL) 8011060: 687b ldr r3, [r7, #4] 8011062: 6e5b ldr r3, [r3, #100] ; 0x64 8011064: 2b00 cmp r3, #0 8011066: f000 82a5 beq.w 80115b4 { huart->RxISR(huart); 801106a: 687b ldr r3, [r7, #4] 801106c: 6e5b ldr r3, [r3, #100] ; 0x64 801106e: 6878 ldr r0, [r7, #4] 8011070: 4798 blx r3 } return; 8011072: e29f b.n 80115b4 } } /* If some errors occur */ if ((errorflags != 0U) 8011074: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8 8011078: 2b00 cmp r3, #0 801107a: f000 8117 beq.w 80112ac && (((cr3its & USART_CR3_EIE) != 0U) 801107e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8011082: f003 0301 and.w r3, r3, #1 8011086: 2b00 cmp r3, #0 8011088: d106 bne.n 8011098 || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U))) 801108a: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0 801108e: 4b85 ldr r3, [pc, #532] ; (80112a4 ) 8011090: 4013 ands r3, r2 8011092: 2b00 cmp r3, #0 8011094: f000 810a beq.w 80112ac { /* UART parity error interrupt occurred -------------------------------------*/ if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) 8011098: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801109c: f003 0301 and.w r3, r3, #1 80110a0: 2b00 cmp r3, #0 80110a2: d011 beq.n 80110c8 80110a4: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80110a8: f403 7380 and.w r3, r3, #256 ; 0x100 80110ac: 2b00 cmp r3, #0 80110ae: d00b beq.n 80110c8 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); 80110b0: 687b ldr r3, [r7, #4] 80110b2: 681b ldr r3, [r3, #0] 80110b4: 2201 movs r2, #1 80110b6: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_PE; 80110b8: 687b ldr r3, [r7, #4] 80110ba: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80110be: f043 0201 orr.w r2, r3, #1 80110c2: 687b ldr r3, [r7, #4] 80110c4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART frame error interrupt occurred --------------------------------------*/ if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 80110c8: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80110cc: f003 0302 and.w r3, r3, #2 80110d0: 2b00 cmp r3, #0 80110d2: d011 beq.n 80110f8 80110d4: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 80110d8: f003 0301 and.w r3, r3, #1 80110dc: 2b00 cmp r3, #0 80110de: d00b beq.n 80110f8 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); 80110e0: 687b ldr r3, [r7, #4] 80110e2: 681b ldr r3, [r3, #0] 80110e4: 2202 movs r2, #2 80110e6: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_FE; 80110e8: 687b ldr r3, [r7, #4] 80110ea: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80110ee: f043 0204 orr.w r2, r3, #4 80110f2: 687b ldr r3, [r7, #4] 80110f4: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART noise error interrupt occurred --------------------------------------*/ if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) 80110f8: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80110fc: f003 0304 and.w r3, r3, #4 8011100: 2b00 cmp r3, #0 8011102: d011 beq.n 8011128 8011104: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8011108: f003 0301 and.w r3, r3, #1 801110c: 2b00 cmp r3, #0 801110e: d00b beq.n 8011128 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); 8011110: 687b ldr r3, [r7, #4] 8011112: 681b ldr r3, [r3, #0] 8011114: 2204 movs r2, #4 8011116: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_NE; 8011118: 687b ldr r3, [r7, #4] 801111a: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801111e: f043 0202 orr.w r2, r3, #2 8011122: 687b ldr r3, [r7, #4] 8011124: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART Over-Run interrupt occurred -----------------------------------------*/ if (((isrflags & USART_ISR_ORE) != 0U) 8011128: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801112c: f003 0308 and.w r3, r3, #8 8011130: 2b00 cmp r3, #0 8011132: d017 beq.n 8011164 && (((cr1its & USART_CR1_RXNEIE) != 0U) || 8011134: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8011138: f003 0320 and.w r3, r3, #32 801113c: 2b00 cmp r3, #0 801113e: d105 bne.n 801114c ((cr3its & USART_CR3_EIE) != 0U))) 8011140: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 8011144: f003 0301 and.w r3, r3, #1 && (((cr1its & USART_CR1_RXNEIE) != 0U) || 8011148: 2b00 cmp r3, #0 801114a: d00b beq.n 8011164 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); 801114c: 687b ldr r3, [r7, #4] 801114e: 681b ldr r3, [r3, #0] 8011150: 2208 movs r2, #8 8011152: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_ORE; 8011154: 687b ldr r3, [r7, #4] 8011156: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801115a: f043 0208 orr.w r2, r3, #8 801115e: 687b ldr r3, [r7, #4] 8011160: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* UART Receiver Timeout interrupt occurred ---------------------------------*/ if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U)) 8011164: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8011168: f403 6300 and.w r3, r3, #2048 ; 0x800 801116c: 2b00 cmp r3, #0 801116e: d012 beq.n 8011196 8011170: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8011174: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 8011178: 2b00 cmp r3, #0 801117a: d00c beq.n 8011196 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 801117c: 687b ldr r3, [r7, #4] 801117e: 681b ldr r3, [r3, #0] 8011180: f44f 6200 mov.w r2, #2048 ; 0x800 8011184: 621a str r2, [r3, #32] huart->ErrorCode |= HAL_UART_ERROR_RTO; 8011186: 687b ldr r3, [r7, #4] 8011188: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801118c: f043 0220 orr.w r2, r3, #32 8011190: 687b ldr r3, [r7, #4] 8011192: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } /* Call UART Error Call back function if need be ----------------------------*/ if (huart->ErrorCode != HAL_UART_ERROR_NONE) 8011196: 687b ldr r3, [r7, #4] 8011198: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 801119c: 2b00 cmp r3, #0 801119e: f000 820b beq.w 80115b8 { /* UART in mode Receiver --------------------------------------------------*/ if (((isrflags & USART_ISR_RXNE) != 0U) 80111a2: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80111a6: f003 0320 and.w r3, r3, #32 80111aa: 2b00 cmp r3, #0 80111ac: d00d beq.n 80111ca && ((cr1its & USART_CR1_RXNEIE) != 0U)) 80111ae: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80111b2: f003 0320 and.w r3, r3, #32 80111b6: 2b00 cmp r3, #0 80111b8: d007 beq.n 80111ca { if (huart->RxISR != NULL) 80111ba: 687b ldr r3, [r7, #4] 80111bc: 6e5b ldr r3, [r3, #100] ; 0x64 80111be: 2b00 cmp r3, #0 80111c0: d003 beq.n 80111ca { huart->RxISR(huart); 80111c2: 687b ldr r3, [r7, #4] 80111c4: 6e5b ldr r3, [r3, #100] ; 0x64 80111c6: 6878 ldr r0, [r7, #4] 80111c8: 4798 blx r3 /* If Error is to be considered as blocking : - Receiver Timeout error in Reception - Overrun error in Reception - any error occurs in DMA mode reception */ errorcode = huart->ErrorCode; 80111ca: 687b ldr r3, [r7, #4] 80111cc: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 80111d0: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 80111d4: 687b ldr r3, [r7, #4] 80111d6: 681b ldr r3, [r3, #0] 80111d8: 689b ldr r3, [r3, #8] 80111da: f003 0340 and.w r3, r3, #64 ; 0x40 80111de: 2b40 cmp r3, #64 ; 0x40 80111e0: d005 beq.n 80111ee ((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U)) 80111e2: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4 80111e6: f003 0328 and.w r3, r3, #40 ; 0x28 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || 80111ea: 2b00 cmp r3, #0 80111ec: d04f beq.n 801128e { /* Blocking error : transfer is aborted Set the UART state ready to be able to start again the process, Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ UART_EndRxTransfer(huart); 80111ee: 6878 ldr r0, [r7, #4] 80111f0: f000 fe1b bl 8011e2a /* Abort the UART DMA Rx channel if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80111f4: 687b ldr r3, [r7, #4] 80111f6: 681b ldr r3, [r3, #0] 80111f8: 689b ldr r3, [r3, #8] 80111fa: f003 0340 and.w r3, r3, #64 ; 0x40 80111fe: 2b40 cmp r3, #64 ; 0x40 8011200: d141 bne.n 8011286 { /* Disable the UART DMA Rx request if enabled */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 8011202: 687b ldr r3, [r7, #4] 8011204: 681b ldr r3, [r3, #0] 8011206: 3308 adds r3, #8 8011208: f8c7 309c str.w r3, [r7, #156] ; 0x9c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801120c: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c 8011210: e853 3f00 ldrex r3, [r3] 8011214: f8c7 3098 str.w r3, [r7, #152] ; 0x98 return(result); 8011218: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98 801121c: f023 0340 bic.w r3, r3, #64 ; 0x40 8011220: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0 8011224: 687b ldr r3, [r7, #4] 8011226: 681b ldr r3, [r3, #0] 8011228: 3308 adds r3, #8 801122a: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0 801122e: f8c7 20a8 str.w r2, [r7, #168] ; 0xa8 8011232: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011236: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4 801123a: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8 801123e: e841 2300 strex r3, r2, [r1] 8011242: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 return(result); 8011246: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0 801124a: 2b00 cmp r3, #0 801124c: d1d9 bne.n 8011202 /* Abort the UART DMA Rx channel */ if (huart->hdmarx != NULL) 801124e: 687b ldr r3, [r7, #4] 8011250: 6f1b ldr r3, [r3, #112] ; 0x70 8011252: 2b00 cmp r3, #0 8011254: d013 beq.n 801127e { /* Set the UART DMA Abort callback : will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; 8011256: 687b ldr r3, [r7, #4] 8011258: 6f1b ldr r3, [r3, #112] ; 0x70 801125a: 4a13 ldr r2, [pc, #76] ; (80112a8 ) 801125c: 651a str r2, [r3, #80] ; 0x50 /* Abort DMA RX */ if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 801125e: 687b ldr r3, [r7, #4] 8011260: 6f1b ldr r3, [r3, #112] ; 0x70 8011262: 4618 mov r0, r3 8011264: f7fc fdfb bl 800de5e 8011268: 4603 mov r3, r0 801126a: 2b00 cmp r3, #0 801126c: d017 beq.n 801129e { /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ huart->hdmarx->XferAbortCallback(huart->hdmarx); 801126e: 687b ldr r3, [r7, #4] 8011270: 6f1b ldr r3, [r3, #112] ; 0x70 8011272: 6d1b ldr r3, [r3, #80] ; 0x50 8011274: 687a ldr r2, [r7, #4] 8011276: 6f12 ldr r2, [r2, #112] ; 0x70 8011278: 4610 mov r0, r2 801127a: 4798 blx r3 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 801127c: e00f b.n 801129e #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 801127e: 6878 ldr r0, [r7, #4] 8011280: f7fb f8c0 bl 800c404 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8011284: e00b b.n 801129e #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 8011286: 6878 ldr r0, [r7, #4] 8011288: f7fb f8bc bl 800c404 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 801128c: e007 b.n 801129e #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 801128e: 6878 ldr r0, [r7, #4] 8011290: f7fb f8b8 bl 800c404 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8011294: 687b ldr r3, [r7, #4] 8011296: 2200 movs r2, #0 8011298: f8c3 2080 str.w r2, [r3, #128] ; 0x80 } } return; 801129c: e18c b.n 80115b8 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 801129e: bf00 nop return; 80112a0: e18a b.n 80115b8 80112a2: bf00 nop 80112a4: 04000120 .word 0x04000120 80112a8: 08011ef1 .word 0x08011ef1 } /* End if some error occurs */ /* Check current reception Mode : If Reception till IDLE event has been selected : */ if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 80112ac: 687b ldr r3, [r7, #4] 80112ae: 6e1b ldr r3, [r3, #96] ; 0x60 80112b0: 2b01 cmp r3, #1 80112b2: f040 8144 bne.w 801153e && ((isrflags & USART_ISR_IDLE) != 0U) 80112b6: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 80112ba: f003 0310 and.w r3, r3, #16 80112be: 2b00 cmp r3, #0 80112c0: f000 813d beq.w 801153e && ((cr1its & USART_ISR_IDLE) != 0U)) 80112c4: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80112c8: f003 0310 and.w r3, r3, #16 80112cc: 2b00 cmp r3, #0 80112ce: f000 8136 beq.w 801153e { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); 80112d2: 687b ldr r3, [r7, #4] 80112d4: 681b ldr r3, [r3, #0] 80112d6: 2210 movs r2, #16 80112d8: 621a str r2, [r3, #32] /* Check if DMA mode is enabled in UART */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 80112da: 687b ldr r3, [r7, #4] 80112dc: 681b ldr r3, [r3, #0] 80112de: 689b ldr r3, [r3, #8] 80112e0: f003 0340 and.w r3, r3, #64 ; 0x40 80112e4: 2b40 cmp r3, #64 ; 0x40 80112e6: f040 80b2 bne.w 801144e { /* DMA mode enabled */ /* Check received length : If all expected data are received, do nothing, (DMA cplt callback will be called). Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); 80112ea: 687b ldr r3, [r7, #4] 80112ec: 6f1b ldr r3, [r3, #112] ; 0x70 80112ee: 681b ldr r3, [r3, #0] 80112f0: 685b ldr r3, [r3, #4] 80112f2: f8a7 30ce strh.w r3, [r7, #206] ; 0xce if ((nb_remaining_rx_data > 0U) 80112f6: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce 80112fa: 2b00 cmp r3, #0 80112fc: f000 815e beq.w 80115bc && (nb_remaining_rx_data < huart->RxXferSize)) 8011300: 687b ldr r3, [r7, #4] 8011302: f8b3 3058 ldrh.w r3, [r3, #88] ; 0x58 8011306: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce 801130a: 429a cmp r2, r3 801130c: f080 8156 bcs.w 80115bc { /* Reception is not complete */ huart->RxXferCount = nb_remaining_rx_data; 8011310: 687b ldr r3, [r7, #4] 8011312: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce 8011316: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* In Normal mode, end DMA xfer and HAL UART Rx process*/ if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) 801131a: 687b ldr r3, [r7, #4] 801131c: 6f1b ldr r3, [r3, #112] ; 0x70 801131e: 69db ldr r3, [r3, #28] 8011320: f5b3 7f80 cmp.w r3, #256 ; 0x100 8011324: f000 8085 beq.w 8011432 { /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 8011328: 687b ldr r3, [r7, #4] 801132a: 681b ldr r3, [r3, #0] 801132c: f8c7 3088 str.w r3, [r7, #136] ; 0x88 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011330: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88 8011334: e853 3f00 ldrex r3, [r3] 8011338: f8c7 3084 str.w r3, [r7, #132] ; 0x84 return(result); 801133c: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84 8011340: f423 7380 bic.w r3, r3, #256 ; 0x100 8011344: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8 8011348: 687b ldr r3, [r7, #4] 801134a: 681b ldr r3, [r3, #0] 801134c: 461a mov r2, r3 801134e: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8 8011352: f8c7 3094 str.w r3, [r7, #148] ; 0x94 8011356: f8c7 2090 str.w r2, [r7, #144] ; 0x90 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801135a: f8d7 1090 ldr.w r1, [r7, #144] ; 0x90 801135e: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94 8011362: e841 2300 strex r3, r2, [r1] 8011366: f8c7 308c str.w r3, [r7, #140] ; 0x8c return(result); 801136a: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c 801136e: 2b00 cmp r3, #0 8011370: d1da bne.n 8011328 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8011372: 687b ldr r3, [r7, #4] 8011374: 681b ldr r3, [r3, #0] 8011376: 3308 adds r3, #8 8011378: 677b str r3, [r7, #116] ; 0x74 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801137a: 6f7b ldr r3, [r7, #116] ; 0x74 801137c: e853 3f00 ldrex r3, [r3] 8011380: 673b str r3, [r7, #112] ; 0x70 return(result); 8011382: 6f3b ldr r3, [r7, #112] ; 0x70 8011384: f023 0301 bic.w r3, r3, #1 8011388: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 801138c: 687b ldr r3, [r7, #4] 801138e: 681b ldr r3, [r3, #0] 8011390: 3308 adds r3, #8 8011392: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4 8011396: f8c7 2080 str.w r2, [r7, #128] ; 0x80 801139a: 67fb str r3, [r7, #124] ; 0x7c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801139c: 6ff9 ldr r1, [r7, #124] ; 0x7c 801139e: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80 80113a2: e841 2300 strex r3, r2, [r1] 80113a6: 67bb str r3, [r7, #120] ; 0x78 return(result); 80113a8: 6fbb ldr r3, [r7, #120] ; 0x78 80113aa: 2b00 cmp r3, #0 80113ac: d1e1 bne.n 8011372 /* Disable the DMA transfer for the receiver request by resetting the DMAR bit in the UART CR3 register */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 80113ae: 687b ldr r3, [r7, #4] 80113b0: 681b ldr r3, [r3, #0] 80113b2: 3308 adds r3, #8 80113b4: 663b str r3, [r7, #96] ; 0x60 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80113b6: 6e3b ldr r3, [r7, #96] ; 0x60 80113b8: e853 3f00 ldrex r3, [r3] 80113bc: 65fb str r3, [r7, #92] ; 0x5c return(result); 80113be: 6dfb ldr r3, [r7, #92] ; 0x5c 80113c0: f023 0340 bic.w r3, r3, #64 ; 0x40 80113c4: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0 80113c8: 687b ldr r3, [r7, #4] 80113ca: 681b ldr r3, [r3, #0] 80113cc: 3308 adds r3, #8 80113ce: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0 80113d2: 66fa str r2, [r7, #108] ; 0x6c 80113d4: 66bb str r3, [r7, #104] ; 0x68 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80113d6: 6eb9 ldr r1, [r7, #104] ; 0x68 80113d8: 6efa ldr r2, [r7, #108] ; 0x6c 80113da: e841 2300 strex r3, r2, [r1] 80113de: 667b str r3, [r7, #100] ; 0x64 return(result); 80113e0: 6e7b ldr r3, [r7, #100] ; 0x64 80113e2: 2b00 cmp r3, #0 80113e4: d1e3 bne.n 80113ae /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 80113e6: 687b ldr r3, [r7, #4] 80113e8: 2220 movs r2, #32 80113ea: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 80113ec: 687b ldr r3, [r7, #4] 80113ee: 2200 movs r2, #0 80113f0: 661a str r2, [r3, #96] ; 0x60 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 80113f2: 687b ldr r3, [r7, #4] 80113f4: 681b ldr r3, [r3, #0] 80113f6: 64fb str r3, [r7, #76] ; 0x4c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80113f8: 6cfb ldr r3, [r7, #76] ; 0x4c 80113fa: e853 3f00 ldrex r3, [r3] 80113fe: 64bb str r3, [r7, #72] ; 0x48 return(result); 8011400: 6cbb ldr r3, [r7, #72] ; 0x48 8011402: f023 0310 bic.w r3, r3, #16 8011406: f8c7 30bc str.w r3, [r7, #188] ; 0xbc 801140a: 687b ldr r3, [r7, #4] 801140c: 681b ldr r3, [r3, #0] 801140e: 461a mov r2, r3 8011410: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc 8011414: 65bb str r3, [r7, #88] ; 0x58 8011416: 657a str r2, [r7, #84] ; 0x54 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011418: 6d79 ldr r1, [r7, #84] ; 0x54 801141a: 6dba ldr r2, [r7, #88] ; 0x58 801141c: e841 2300 strex r3, r2, [r1] 8011420: 653b str r3, [r7, #80] ; 0x50 return(result); 8011422: 6d3b ldr r3, [r7, #80] ; 0x50 8011424: 2b00 cmp r3, #0 8011426: d1e4 bne.n 80113f2 /* Last bytes received, so no need as the abort is immediate */ (void)HAL_DMA_Abort(huart->hdmarx); 8011428: 687b ldr r3, [r7, #4] 801142a: 6f1b ldr r3, [r3, #112] ; 0x70 801142c: 4618 mov r0, r3 801142e: f7fc fca6 bl 800dd7e #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx Event callback*/ huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); #else /*Call legacy weak Rx Event callback*/ HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 8011432: 687b ldr r3, [r7, #4] 8011434: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58 8011438: 687b ldr r3, [r7, #4] 801143a: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 801143e: b29b uxth r3, r3 8011440: 1ad3 subs r3, r2, r3 8011442: b29b uxth r3, r3 8011444: 4619 mov r1, r3 8011446: 6878 ldr r0, [r7, #4] 8011448: f000 f8ca bl 80115e0 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } return; 801144c: e0b6 b.n 80115bc else { /* DMA mode not enabled */ /* Check received length : If all expected data are received, do nothing. Otherwise, if at least one data has already been received, IDLE event is to be notified to user */ uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; 801144e: 687b ldr r3, [r7, #4] 8011450: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58 8011454: 687b ldr r3, [r7, #4] 8011456: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 801145a: b29b uxth r3, r3 801145c: 1ad3 subs r3, r2, r3 801145e: f8a7 30ba strh.w r3, [r7, #186] ; 0xba if ((huart->RxXferCount > 0U) 8011462: 687b ldr r3, [r7, #4] 8011464: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a 8011468: b29b uxth r3, r3 801146a: 2b00 cmp r3, #0 801146c: f000 80a8 beq.w 80115c0 && (nb_rx_data > 0U)) 8011470: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba 8011474: 2b00 cmp r3, #0 8011476: f000 80a3 beq.w 80115c0 { /* Disable the UART Parity Error Interrupt and RXNE interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 801147a: 687b ldr r3, [r7, #4] 801147c: 681b ldr r3, [r3, #0] 801147e: 63bb str r3, [r7, #56] ; 0x38 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011480: 6bbb ldr r3, [r7, #56] ; 0x38 8011482: e853 3f00 ldrex r3, [r3] 8011486: 637b str r3, [r7, #52] ; 0x34 return(result); 8011488: 6b7b ldr r3, [r7, #52] ; 0x34 801148a: f423 7390 bic.w r3, r3, #288 ; 0x120 801148e: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4 8011492: 687b ldr r3, [r7, #4] 8011494: 681b ldr r3, [r3, #0] 8011496: 461a mov r2, r3 8011498: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4 801149c: 647b str r3, [r7, #68] ; 0x44 801149e: 643a str r2, [r7, #64] ; 0x40 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80114a0: 6c39 ldr r1, [r7, #64] ; 0x40 80114a2: 6c7a ldr r2, [r7, #68] ; 0x44 80114a4: e841 2300 strex r3, r2, [r1] 80114a8: 63fb str r3, [r7, #60] ; 0x3c return(result); 80114aa: 6bfb ldr r3, [r7, #60] ; 0x3c 80114ac: 2b00 cmp r3, #0 80114ae: d1e4 bne.n 801147a /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 80114b0: 687b ldr r3, [r7, #4] 80114b2: 681b ldr r3, [r3, #0] 80114b4: 3308 adds r3, #8 80114b6: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80114b8: 6a7b ldr r3, [r7, #36] ; 0x24 80114ba: e853 3f00 ldrex r3, [r3] 80114be: 623b str r3, [r7, #32] return(result); 80114c0: 6a3b ldr r3, [r7, #32] 80114c2: f023 0301 bic.w r3, r3, #1 80114c6: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0 80114ca: 687b ldr r3, [r7, #4] 80114cc: 681b ldr r3, [r3, #0] 80114ce: 3308 adds r3, #8 80114d0: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0 80114d4: 633a str r2, [r7, #48] ; 0x30 80114d6: 62fb str r3, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80114d8: 6af9 ldr r1, [r7, #44] ; 0x2c 80114da: 6b3a ldr r2, [r7, #48] ; 0x30 80114dc: e841 2300 strex r3, r2, [r1] 80114e0: 62bb str r3, [r7, #40] ; 0x28 return(result); 80114e2: 6abb ldr r3, [r7, #40] ; 0x28 80114e4: 2b00 cmp r3, #0 80114e6: d1e3 bne.n 80114b0 /* Rx process is completed, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 80114e8: 687b ldr r3, [r7, #4] 80114ea: 2220 movs r2, #32 80114ec: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 80114ee: 687b ldr r3, [r7, #4] 80114f0: 2200 movs r2, #0 80114f2: 661a str r2, [r3, #96] ; 0x60 /* Clear RxISR function pointer */ huart->RxISR = NULL; 80114f4: 687b ldr r3, [r7, #4] 80114f6: 2200 movs r2, #0 80114f8: 665a str r2, [r3, #100] ; 0x64 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 80114fa: 687b ldr r3, [r7, #4] 80114fc: 681b ldr r3, [r3, #0] 80114fe: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011500: 693b ldr r3, [r7, #16] 8011502: e853 3f00 ldrex r3, [r3] 8011506: 60fb str r3, [r7, #12] return(result); 8011508: 68fb ldr r3, [r7, #12] 801150a: f023 0310 bic.w r3, r3, #16 801150e: f8c7 30ac str.w r3, [r7, #172] ; 0xac 8011512: 687b ldr r3, [r7, #4] 8011514: 681b ldr r3, [r3, #0] 8011516: 461a mov r2, r3 8011518: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac 801151c: 61fb str r3, [r7, #28] 801151e: 61ba str r2, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011520: 69b9 ldr r1, [r7, #24] 8011522: 69fa ldr r2, [r7, #28] 8011524: e841 2300 strex r3, r2, [r1] 8011528: 617b str r3, [r7, #20] return(result); 801152a: 697b ldr r3, [r7, #20] 801152c: 2b00 cmp r3, #0 801152e: d1e4 bne.n 80114fa #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx complete callback*/ huart->RxEventCallback(huart, nb_rx_data); #else /*Call legacy weak Rx Event callback*/ HAL_UARTEx_RxEventCallback(huart, nb_rx_data); 8011530: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba 8011534: 4619 mov r1, r3 8011536: 6878 ldr r0, [r7, #4] 8011538: f000 f852 bl 80115e0 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } return; 801153c: e040 b.n 80115c0 } #if defined(USART_CR1_UESM) #if defined(USART_CR3_WUFIE) /* UART wakeup from Stop mode interrupt occurred ---------------------------*/ if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U)) 801153e: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8011542: f403 1380 and.w r3, r3, #1048576 ; 0x100000 8011546: 2b00 cmp r3, #0 8011548: d00e beq.n 8011568 801154a: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc 801154e: f403 0380 and.w r3, r3, #4194304 ; 0x400000 8011552: 2b00 cmp r3, #0 8011554: d008 beq.n 8011568 { __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); 8011556: 687b ldr r3, [r7, #4] 8011558: 681b ldr r3, [r3, #0] 801155a: f44f 1280 mov.w r2, #1048576 ; 0x100000 801155e: 621a str r2, [r3, #32] #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Wakeup Callback */ huart->WakeupCallback(huart); #else /* Call legacy weak Wakeup Callback */ HAL_UARTEx_WakeupCallback(huart); 8011560: 6878 ldr r0, [r7, #4] 8011562: f000 f849 bl 80115f8 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ return; 8011566: e02e b.n 80115c6 } #endif /* USART_CR3_WUFIE */ #endif /* USART_CR1_UESM */ /* UART in mode Transmitter ------------------------------------------------*/ if (((isrflags & USART_ISR_TXE) != 0U) 8011568: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 801156c: f003 0380 and.w r3, r3, #128 ; 0x80 8011570: 2b00 cmp r3, #0 8011572: d00e beq.n 8011592 && ((cr1its & USART_CR1_TXEIE) != 0U)) 8011574: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 8011578: f003 0380 and.w r3, r3, #128 ; 0x80 801157c: 2b00 cmp r3, #0 801157e: d008 beq.n 8011592 { if (huart->TxISR != NULL) 8011580: 687b ldr r3, [r7, #4] 8011582: 6e9b ldr r3, [r3, #104] ; 0x68 8011584: 2b00 cmp r3, #0 8011586: d01d beq.n 80115c4 { huart->TxISR(huart); 8011588: 687b ldr r3, [r7, #4] 801158a: 6e9b ldr r3, [r3, #104] ; 0x68 801158c: 6878 ldr r0, [r7, #4] 801158e: 4798 blx r3 } return; 8011590: e018 b.n 80115c4 } /* UART in mode Transmitter (transmission end) -----------------------------*/ if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) 8011592: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4 8011596: f003 0340 and.w r3, r3, #64 ; 0x40 801159a: 2b00 cmp r3, #0 801159c: d013 beq.n 80115c6 801159e: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0 80115a2: f003 0340 and.w r3, r3, #64 ; 0x40 80115a6: 2b00 cmp r3, #0 80115a8: d00d beq.n 80115c6 { UART_EndTransmit_IT(huart); 80115aa: 6878 ldr r0, [r7, #4] 80115ac: f000 fde2 bl 8012174 return; 80115b0: bf00 nop 80115b2: e008 b.n 80115c6 return; 80115b4: bf00 nop 80115b6: e006 b.n 80115c6 return; 80115b8: bf00 nop 80115ba: e004 b.n 80115c6 return; 80115bc: bf00 nop 80115be: e002 b.n 80115c6 return; 80115c0: bf00 nop 80115c2: e000 b.n 80115c6 return; 80115c4: bf00 nop } } 80115c6: 37e8 adds r7, #232 ; 0xe8 80115c8: 46bd mov sp, r7 80115ca: bd80 pop {r7, pc} 080115cc : * @brief UART Abort Complete callback. * @param huart UART handle. * @retval None */ __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) { 80115cc: b480 push {r7} 80115ce: b083 sub sp, #12 80115d0: af00 add r7, sp, #0 80115d2: 6078 str r0, [r7, #4] UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UART_AbortCpltCallback can be implemented in the user file. */ } 80115d4: bf00 nop 80115d6: 370c adds r7, #12 80115d8: 46bd mov sp, r7 80115da: f85d 7b04 ldr.w r7, [sp], #4 80115de: 4770 bx lr 080115e0 : * @param Size Number of data available in application reception buffer (indicates a position in * reception buffer until which, data are available) * @retval None */ __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) { 80115e0: b480 push {r7} 80115e2: b083 sub sp, #12 80115e4: af00 add r7, sp, #0 80115e6: 6078 str r0, [r7, #4] 80115e8: 460b mov r3, r1 80115ea: 807b strh r3, [r7, #2] UNUSED(Size); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UARTEx_RxEventCallback can be implemented in the user file. */ } 80115ec: bf00 nop 80115ee: 370c adds r7, #12 80115f0: 46bd mov sp, r7 80115f2: f85d 7b04 ldr.w r7, [sp], #4 80115f6: 4770 bx lr 080115f8 : * @brief UART wakeup from Stop mode callback. * @param huart UART handle. * @retval None */ __weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart) { 80115f8: b480 push {r7} 80115fa: b083 sub sp, #12 80115fc: af00 add r7, sp, #0 80115fe: 6078 str r0, [r7, #4] UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, the HAL_UARTEx_WakeupCallback can be implemented in the user file. */ } 8011600: bf00 nop 8011602: 370c adds r7, #12 8011604: 46bd mov sp, r7 8011606: f85d 7b04 ldr.w r7, [sp], #4 801160a: 4770 bx lr 0801160c : * @brief Configure the UART peripheral. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) { 801160c: b580 push {r7, lr} 801160e: b088 sub sp, #32 8011610: af00 add r7, sp, #0 8011612: 6078 str r0, [r7, #4] uint32_t tmpreg; uint16_t brrtemp; UART_ClockSourceTypeDef clocksource; uint32_t usartdiv; HAL_StatusTypeDef ret = HAL_OK; 8011614: 2300 movs r3, #0 8011616: 77bb strb r3, [r7, #30] * the UART Word Length, Parity, Mode and oversampling: * set the M bits according to huart->Init.WordLength value * set PCE and PS bits according to huart->Init.Parity value * set TE and RE bits according to huart->Init.Mode value * set OVER8 bit according to huart->Init.OverSampling value */ tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; 8011618: 687b ldr r3, [r7, #4] 801161a: 689a ldr r2, [r3, #8] 801161c: 687b ldr r3, [r7, #4] 801161e: 691b ldr r3, [r3, #16] 8011620: 431a orrs r2, r3 8011622: 687b ldr r3, [r7, #4] 8011624: 695b ldr r3, [r3, #20] 8011626: 431a orrs r2, r3 8011628: 687b ldr r3, [r7, #4] 801162a: 69db ldr r3, [r3, #28] 801162c: 4313 orrs r3, r2 801162e: 617b str r3, [r7, #20] MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); 8011630: 687b ldr r3, [r7, #4] 8011632: 681a ldr r2, [r3, #0] 8011634: 687b ldr r3, [r7, #4] 8011636: 681b ldr r3, [r3, #0] 8011638: 6819 ldr r1, [r3, #0] 801163a: 4bb3 ldr r3, [pc, #716] ; (8011908 ) 801163c: 400b ands r3, r1 801163e: 6979 ldr r1, [r7, #20] 8011640: 430b orrs r3, r1 8011642: 6013 str r3, [r2, #0] /*-------------------------- USART CR2 Configuration -----------------------*/ /* Configure the UART Stop Bits: Set STOP[13:12] bits according * to huart->Init.StopBits value */ MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); 8011644: 687b ldr r3, [r7, #4] 8011646: 681b ldr r3, [r3, #0] 8011648: 687a ldr r2, [r7, #4] 801164a: 6812 ldr r2, [r2, #0] 801164c: 6852 ldr r2, [r2, #4] 801164e: f422 5140 bic.w r1, r2, #12288 ; 0x3000 8011652: 687a ldr r2, [r7, #4] 8011654: 68d2 ldr r2, [r2, #12] 8011656: 430a orrs r2, r1 8011658: 605a str r2, [r3, #4] /* Configure * - UART HardWare Flow Control: set CTSE and RTSE bits according * to huart->Init.HwFlowCtl value * - one-bit sampling method versus three samples' majority rule according * to huart->Init.OneBitSampling (not applicable to LPUART) */ tmpreg = (uint32_t)huart->Init.HwFlowCtl; 801165a: 687b ldr r3, [r7, #4] 801165c: 699b ldr r3, [r3, #24] 801165e: 617b str r3, [r7, #20] tmpreg |= huart->Init.OneBitSampling; 8011660: 687b ldr r3, [r7, #4] 8011662: 6a1b ldr r3, [r3, #32] 8011664: 697a ldr r2, [r7, #20] 8011666: 4313 orrs r3, r2 8011668: 617b str r3, [r7, #20] MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); 801166a: 687b ldr r3, [r7, #4] 801166c: 681b ldr r3, [r3, #0] 801166e: 687a ldr r2, [r7, #4] 8011670: 6812 ldr r2, [r2, #0] 8011672: 6892 ldr r2, [r2, #8] 8011674: f422 6130 bic.w r1, r2, #2816 ; 0xb00 8011678: 697a ldr r2, [r7, #20] 801167a: 430a orrs r2, r1 801167c: 609a str r2, [r3, #8] /*-------------------------- USART BRR Configuration -----------------------*/ UART_GETCLOCKSOURCE(huart, clocksource); 801167e: 687b ldr r3, [r7, #4] 8011680: 681b ldr r3, [r3, #0] 8011682: 4aa2 ldr r2, [pc, #648] ; (801190c ) 8011684: 4293 cmp r3, r2 8011686: d121 bne.n 80116cc 8011688: 4ba1 ldr r3, [pc, #644] ; (8011910 ) 801168a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801168e: f003 0303 and.w r3, r3, #3 8011692: 2b03 cmp r3, #3 8011694: d816 bhi.n 80116c4 8011696: a201 add r2, pc, #4 ; (adr r2, 801169c ) 8011698: f852 f023 ldr.w pc, [r2, r3, lsl #2] 801169c: 080116ad .word 0x080116ad 80116a0: 080116b9 .word 0x080116b9 80116a4: 080116b3 .word 0x080116b3 80116a8: 080116bf .word 0x080116bf 80116ac: 2301 movs r3, #1 80116ae: 77fb strb r3, [r7, #31] 80116b0: e150 b.n 8011954 80116b2: 2302 movs r3, #2 80116b4: 77fb strb r3, [r7, #31] 80116b6: e14d b.n 8011954 80116b8: 2304 movs r3, #4 80116ba: 77fb strb r3, [r7, #31] 80116bc: e14a b.n 8011954 80116be: 2308 movs r3, #8 80116c0: 77fb strb r3, [r7, #31] 80116c2: e147 b.n 8011954 80116c4: 2310 movs r3, #16 80116c6: 77fb strb r3, [r7, #31] 80116c8: bf00 nop 80116ca: e143 b.n 8011954 80116cc: 687b ldr r3, [r7, #4] 80116ce: 681b ldr r3, [r3, #0] 80116d0: 4a90 ldr r2, [pc, #576] ; (8011914 ) 80116d2: 4293 cmp r3, r2 80116d4: d134 bne.n 8011740 80116d6: 4b8e ldr r3, [pc, #568] ; (8011910 ) 80116d8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80116dc: f003 030c and.w r3, r3, #12 80116e0: 2b0c cmp r3, #12 80116e2: d829 bhi.n 8011738 80116e4: a201 add r2, pc, #4 ; (adr r2, 80116ec ) 80116e6: f852 f023 ldr.w pc, [r2, r3, lsl #2] 80116ea: bf00 nop 80116ec: 08011721 .word 0x08011721 80116f0: 08011739 .word 0x08011739 80116f4: 08011739 .word 0x08011739 80116f8: 08011739 .word 0x08011739 80116fc: 0801172d .word 0x0801172d 8011700: 08011739 .word 0x08011739 8011704: 08011739 .word 0x08011739 8011708: 08011739 .word 0x08011739 801170c: 08011727 .word 0x08011727 8011710: 08011739 .word 0x08011739 8011714: 08011739 .word 0x08011739 8011718: 08011739 .word 0x08011739 801171c: 08011733 .word 0x08011733 8011720: 2300 movs r3, #0 8011722: 77fb strb r3, [r7, #31] 8011724: e116 b.n 8011954 8011726: 2302 movs r3, #2 8011728: 77fb strb r3, [r7, #31] 801172a: e113 b.n 8011954 801172c: 2304 movs r3, #4 801172e: 77fb strb r3, [r7, #31] 8011730: e110 b.n 8011954 8011732: 2308 movs r3, #8 8011734: 77fb strb r3, [r7, #31] 8011736: e10d b.n 8011954 8011738: 2310 movs r3, #16 801173a: 77fb strb r3, [r7, #31] 801173c: bf00 nop 801173e: e109 b.n 8011954 8011740: 687b ldr r3, [r7, #4] 8011742: 681b ldr r3, [r3, #0] 8011744: 4a74 ldr r2, [pc, #464] ; (8011918 ) 8011746: 4293 cmp r3, r2 8011748: d120 bne.n 801178c 801174a: 4b71 ldr r3, [pc, #452] ; (8011910 ) 801174c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8011750: f003 0330 and.w r3, r3, #48 ; 0x30 8011754: 2b10 cmp r3, #16 8011756: d00f beq.n 8011778 8011758: 2b10 cmp r3, #16 801175a: d802 bhi.n 8011762 801175c: 2b00 cmp r3, #0 801175e: d005 beq.n 801176c 8011760: e010 b.n 8011784 8011762: 2b20 cmp r3, #32 8011764: d005 beq.n 8011772 8011766: 2b30 cmp r3, #48 ; 0x30 8011768: d009 beq.n 801177e 801176a: e00b b.n 8011784 801176c: 2300 movs r3, #0 801176e: 77fb strb r3, [r7, #31] 8011770: e0f0 b.n 8011954 8011772: 2302 movs r3, #2 8011774: 77fb strb r3, [r7, #31] 8011776: e0ed b.n 8011954 8011778: 2304 movs r3, #4 801177a: 77fb strb r3, [r7, #31] 801177c: e0ea b.n 8011954 801177e: 2308 movs r3, #8 8011780: 77fb strb r3, [r7, #31] 8011782: e0e7 b.n 8011954 8011784: 2310 movs r3, #16 8011786: 77fb strb r3, [r7, #31] 8011788: bf00 nop 801178a: e0e3 b.n 8011954 801178c: 687b ldr r3, [r7, #4] 801178e: 681b ldr r3, [r3, #0] 8011790: 4a62 ldr r2, [pc, #392] ; (801191c ) 8011792: 4293 cmp r3, r2 8011794: d120 bne.n 80117d8 8011796: 4b5e ldr r3, [pc, #376] ; (8011910 ) 8011798: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801179c: f003 03c0 and.w r3, r3, #192 ; 0xc0 80117a0: 2b40 cmp r3, #64 ; 0x40 80117a2: d00f beq.n 80117c4 80117a4: 2b40 cmp r3, #64 ; 0x40 80117a6: d802 bhi.n 80117ae 80117a8: 2b00 cmp r3, #0 80117aa: d005 beq.n 80117b8 80117ac: e010 b.n 80117d0 80117ae: 2b80 cmp r3, #128 ; 0x80 80117b0: d005 beq.n 80117be 80117b2: 2bc0 cmp r3, #192 ; 0xc0 80117b4: d009 beq.n 80117ca 80117b6: e00b b.n 80117d0 80117b8: 2300 movs r3, #0 80117ba: 77fb strb r3, [r7, #31] 80117bc: e0ca b.n 8011954 80117be: 2302 movs r3, #2 80117c0: 77fb strb r3, [r7, #31] 80117c2: e0c7 b.n 8011954 80117c4: 2304 movs r3, #4 80117c6: 77fb strb r3, [r7, #31] 80117c8: e0c4 b.n 8011954 80117ca: 2308 movs r3, #8 80117cc: 77fb strb r3, [r7, #31] 80117ce: e0c1 b.n 8011954 80117d0: 2310 movs r3, #16 80117d2: 77fb strb r3, [r7, #31] 80117d4: bf00 nop 80117d6: e0bd b.n 8011954 80117d8: 687b ldr r3, [r7, #4] 80117da: 681b ldr r3, [r3, #0] 80117dc: 4a50 ldr r2, [pc, #320] ; (8011920 ) 80117de: 4293 cmp r3, r2 80117e0: d124 bne.n 801182c 80117e2: 4b4b ldr r3, [pc, #300] ; (8011910 ) 80117e4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80117e8: f403 7340 and.w r3, r3, #768 ; 0x300 80117ec: f5b3 7f80 cmp.w r3, #256 ; 0x100 80117f0: d012 beq.n 8011818 80117f2: f5b3 7f80 cmp.w r3, #256 ; 0x100 80117f6: d802 bhi.n 80117fe 80117f8: 2b00 cmp r3, #0 80117fa: d007 beq.n 801180c 80117fc: e012 b.n 8011824 80117fe: f5b3 7f00 cmp.w r3, #512 ; 0x200 8011802: d006 beq.n 8011812 8011804: f5b3 7f40 cmp.w r3, #768 ; 0x300 8011808: d009 beq.n 801181e 801180a: e00b b.n 8011824 801180c: 2300 movs r3, #0 801180e: 77fb strb r3, [r7, #31] 8011810: e0a0 b.n 8011954 8011812: 2302 movs r3, #2 8011814: 77fb strb r3, [r7, #31] 8011816: e09d b.n 8011954 8011818: 2304 movs r3, #4 801181a: 77fb strb r3, [r7, #31] 801181c: e09a b.n 8011954 801181e: 2308 movs r3, #8 8011820: 77fb strb r3, [r7, #31] 8011822: e097 b.n 8011954 8011824: 2310 movs r3, #16 8011826: 77fb strb r3, [r7, #31] 8011828: bf00 nop 801182a: e093 b.n 8011954 801182c: 687b ldr r3, [r7, #4] 801182e: 681b ldr r3, [r3, #0] 8011830: 4a3c ldr r2, [pc, #240] ; (8011924 ) 8011832: 4293 cmp r3, r2 8011834: d124 bne.n 8011880 8011836: 4b36 ldr r3, [pc, #216] ; (8011910 ) 8011838: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 801183c: f403 6340 and.w r3, r3, #3072 ; 0xc00 8011840: f5b3 6f80 cmp.w r3, #1024 ; 0x400 8011844: d012 beq.n 801186c 8011846: f5b3 6f80 cmp.w r3, #1024 ; 0x400 801184a: d802 bhi.n 8011852 801184c: 2b00 cmp r3, #0 801184e: d007 beq.n 8011860 8011850: e012 b.n 8011878 8011852: f5b3 6f00 cmp.w r3, #2048 ; 0x800 8011856: d006 beq.n 8011866 8011858: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 801185c: d009 beq.n 8011872 801185e: e00b b.n 8011878 8011860: 2301 movs r3, #1 8011862: 77fb strb r3, [r7, #31] 8011864: e076 b.n 8011954 8011866: 2302 movs r3, #2 8011868: 77fb strb r3, [r7, #31] 801186a: e073 b.n 8011954 801186c: 2304 movs r3, #4 801186e: 77fb strb r3, [r7, #31] 8011870: e070 b.n 8011954 8011872: 2308 movs r3, #8 8011874: 77fb strb r3, [r7, #31] 8011876: e06d b.n 8011954 8011878: 2310 movs r3, #16 801187a: 77fb strb r3, [r7, #31] 801187c: bf00 nop 801187e: e069 b.n 8011954 8011880: 687b ldr r3, [r7, #4] 8011882: 681b ldr r3, [r3, #0] 8011884: 4a28 ldr r2, [pc, #160] ; (8011928 ) 8011886: 4293 cmp r3, r2 8011888: d124 bne.n 80118d4 801188a: 4b21 ldr r3, [pc, #132] ; (8011910 ) 801188c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 8011890: f403 5340 and.w r3, r3, #12288 ; 0x3000 8011894: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 8011898: d012 beq.n 80118c0 801189a: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 801189e: d802 bhi.n 80118a6 80118a0: 2b00 cmp r3, #0 80118a2: d007 beq.n 80118b4 80118a4: e012 b.n 80118cc 80118a6: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 80118aa: d006 beq.n 80118ba 80118ac: f5b3 5f40 cmp.w r3, #12288 ; 0x3000 80118b0: d009 beq.n 80118c6 80118b2: e00b b.n 80118cc 80118b4: 2300 movs r3, #0 80118b6: 77fb strb r3, [r7, #31] 80118b8: e04c b.n 8011954 80118ba: 2302 movs r3, #2 80118bc: 77fb strb r3, [r7, #31] 80118be: e049 b.n 8011954 80118c0: 2304 movs r3, #4 80118c2: 77fb strb r3, [r7, #31] 80118c4: e046 b.n 8011954 80118c6: 2308 movs r3, #8 80118c8: 77fb strb r3, [r7, #31] 80118ca: e043 b.n 8011954 80118cc: 2310 movs r3, #16 80118ce: 77fb strb r3, [r7, #31] 80118d0: bf00 nop 80118d2: e03f b.n 8011954 80118d4: 687b ldr r3, [r7, #4] 80118d6: 681b ldr r3, [r3, #0] 80118d8: 4a14 ldr r2, [pc, #80] ; (801192c ) 80118da: 4293 cmp r3, r2 80118dc: d138 bne.n 8011950 80118de: 4b0c ldr r3, [pc, #48] ; (8011910 ) 80118e0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 80118e4: f403 4340 and.w r3, r3, #49152 ; 0xc000 80118e8: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 80118ec: d026 beq.n 801193c 80118ee: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 80118f2: d802 bhi.n 80118fa 80118f4: 2b00 cmp r3, #0 80118f6: d01b beq.n 8011930 80118f8: e026 b.n 8011948 80118fa: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 80118fe: d01a beq.n 8011936 8011900: f5b3 4f40 cmp.w r3, #49152 ; 0xc000 8011904: d01d beq.n 8011942 8011906: e01f b.n 8011948 8011908: efff69f3 .word 0xefff69f3 801190c: 40011000 .word 0x40011000 8011910: 40023800 .word 0x40023800 8011914: 40004400 .word 0x40004400 8011918: 40004800 .word 0x40004800 801191c: 40004c00 .word 0x40004c00 8011920: 40005000 .word 0x40005000 8011924: 40011400 .word 0x40011400 8011928: 40007800 .word 0x40007800 801192c: 40007c00 .word 0x40007c00 8011930: 2300 movs r3, #0 8011932: 77fb strb r3, [r7, #31] 8011934: e00e b.n 8011954 8011936: 2302 movs r3, #2 8011938: 77fb strb r3, [r7, #31] 801193a: e00b b.n 8011954 801193c: 2304 movs r3, #4 801193e: 77fb strb r3, [r7, #31] 8011940: e008 b.n 8011954 8011942: 2308 movs r3, #8 8011944: 77fb strb r3, [r7, #31] 8011946: e005 b.n 8011954 8011948: 2310 movs r3, #16 801194a: 77fb strb r3, [r7, #31] 801194c: bf00 nop 801194e: e001 b.n 8011954 8011950: 2310 movs r3, #16 8011952: 77fb strb r3, [r7, #31] if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 8011954: 687b ldr r3, [r7, #4] 8011956: 69db ldr r3, [r3, #28] 8011958: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 801195c: d15b bne.n 8011a16 { switch (clocksource) 801195e: 7ffb ldrb r3, [r7, #31] 8011960: 2b08 cmp r3, #8 8011962: d828 bhi.n 80119b6 8011964: a201 add r2, pc, #4 ; (adr r2, 801196c ) 8011966: f852 f023 ldr.w pc, [r2, r3, lsl #2] 801196a: bf00 nop 801196c: 08011991 .word 0x08011991 8011970: 08011999 .word 0x08011999 8011974: 080119a1 .word 0x080119a1 8011978: 080119b7 .word 0x080119b7 801197c: 080119a7 .word 0x080119a7 8011980: 080119b7 .word 0x080119b7 8011984: 080119b7 .word 0x080119b7 8011988: 080119b7 .word 0x080119b7 801198c: 080119af .word 0x080119af { case UART_CLOCKSOURCE_PCLK1: pclk = HAL_RCC_GetPCLK1Freq(); 8011990: f7fe f8d8 bl 800fb44 8011994: 61b8 str r0, [r7, #24] break; 8011996: e013 b.n 80119c0 case UART_CLOCKSOURCE_PCLK2: pclk = HAL_RCC_GetPCLK2Freq(); 8011998: f7fe f8e8 bl 800fb6c 801199c: 61b8 str r0, [r7, #24] break; 801199e: e00f b.n 80119c0 case UART_CLOCKSOURCE_HSI: pclk = (uint32_t) HSI_VALUE; 80119a0: 4b49 ldr r3, [pc, #292] ; (8011ac8 ) 80119a2: 61bb str r3, [r7, #24] break; 80119a4: e00c b.n 80119c0 case UART_CLOCKSOURCE_SYSCLK: pclk = HAL_RCC_GetSysClockFreq(); 80119a6: f7fe f80b bl 800f9c0 80119aa: 61b8 str r0, [r7, #24] break; 80119ac: e008 b.n 80119c0 case UART_CLOCKSOURCE_LSE: pclk = (uint32_t) LSE_VALUE; 80119ae: f44f 4300 mov.w r3, #32768 ; 0x8000 80119b2: 61bb str r3, [r7, #24] break; 80119b4: e004 b.n 80119c0 default: pclk = 0U; 80119b6: 2300 movs r3, #0 80119b8: 61bb str r3, [r7, #24] ret = HAL_ERROR; 80119ba: 2301 movs r3, #1 80119bc: 77bb strb r3, [r7, #30] break; 80119be: bf00 nop } /* USARTDIV must be greater than or equal to 0d16 */ if (pclk != 0U) 80119c0: 69bb ldr r3, [r7, #24] 80119c2: 2b00 cmp r3, #0 80119c4: d074 beq.n 8011ab0 { usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); 80119c6: 69bb ldr r3, [r7, #24] 80119c8: 005a lsls r2, r3, #1 80119ca: 687b ldr r3, [r7, #4] 80119cc: 685b ldr r3, [r3, #4] 80119ce: 085b lsrs r3, r3, #1 80119d0: 441a add r2, r3 80119d2: 687b ldr r3, [r7, #4] 80119d4: 685b ldr r3, [r3, #4] 80119d6: fbb2 f3f3 udiv r3, r2, r3 80119da: 613b str r3, [r7, #16] if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 80119dc: 693b ldr r3, [r7, #16] 80119de: 2b0f cmp r3, #15 80119e0: d916 bls.n 8011a10 80119e2: 693b ldr r3, [r7, #16] 80119e4: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 80119e8: d212 bcs.n 8011a10 { brrtemp = (uint16_t)(usartdiv & 0xFFF0U); 80119ea: 693b ldr r3, [r7, #16] 80119ec: b29b uxth r3, r3 80119ee: f023 030f bic.w r3, r3, #15 80119f2: 81fb strh r3, [r7, #14] brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); 80119f4: 693b ldr r3, [r7, #16] 80119f6: 085b lsrs r3, r3, #1 80119f8: b29b uxth r3, r3 80119fa: f003 0307 and.w r3, r3, #7 80119fe: b29a uxth r2, r3 8011a00: 89fb ldrh r3, [r7, #14] 8011a02: 4313 orrs r3, r2 8011a04: 81fb strh r3, [r7, #14] huart->Instance->BRR = brrtemp; 8011a06: 687b ldr r3, [r7, #4] 8011a08: 681b ldr r3, [r3, #0] 8011a0a: 89fa ldrh r2, [r7, #14] 8011a0c: 60da str r2, [r3, #12] 8011a0e: e04f b.n 8011ab0 } else { ret = HAL_ERROR; 8011a10: 2301 movs r3, #1 8011a12: 77bb strb r3, [r7, #30] 8011a14: e04c b.n 8011ab0 } } } else { switch (clocksource) 8011a16: 7ffb ldrb r3, [r7, #31] 8011a18: 2b08 cmp r3, #8 8011a1a: d828 bhi.n 8011a6e 8011a1c: a201 add r2, pc, #4 ; (adr r2, 8011a24 ) 8011a1e: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8011a22: bf00 nop 8011a24: 08011a49 .word 0x08011a49 8011a28: 08011a51 .word 0x08011a51 8011a2c: 08011a59 .word 0x08011a59 8011a30: 08011a6f .word 0x08011a6f 8011a34: 08011a5f .word 0x08011a5f 8011a38: 08011a6f .word 0x08011a6f 8011a3c: 08011a6f .word 0x08011a6f 8011a40: 08011a6f .word 0x08011a6f 8011a44: 08011a67 .word 0x08011a67 { case UART_CLOCKSOURCE_PCLK1: pclk = HAL_RCC_GetPCLK1Freq(); 8011a48: f7fe f87c bl 800fb44 8011a4c: 61b8 str r0, [r7, #24] break; 8011a4e: e013 b.n 8011a78 case UART_CLOCKSOURCE_PCLK2: pclk = HAL_RCC_GetPCLK2Freq(); 8011a50: f7fe f88c bl 800fb6c 8011a54: 61b8 str r0, [r7, #24] break; 8011a56: e00f b.n 8011a78 case UART_CLOCKSOURCE_HSI: pclk = (uint32_t) HSI_VALUE; 8011a58: 4b1b ldr r3, [pc, #108] ; (8011ac8 ) 8011a5a: 61bb str r3, [r7, #24] break; 8011a5c: e00c b.n 8011a78 case UART_CLOCKSOURCE_SYSCLK: pclk = HAL_RCC_GetSysClockFreq(); 8011a5e: f7fd ffaf bl 800f9c0 8011a62: 61b8 str r0, [r7, #24] break; 8011a64: e008 b.n 8011a78 case UART_CLOCKSOURCE_LSE: pclk = (uint32_t) LSE_VALUE; 8011a66: f44f 4300 mov.w r3, #32768 ; 0x8000 8011a6a: 61bb str r3, [r7, #24] break; 8011a6c: e004 b.n 8011a78 default: pclk = 0U; 8011a6e: 2300 movs r3, #0 8011a70: 61bb str r3, [r7, #24] ret = HAL_ERROR; 8011a72: 2301 movs r3, #1 8011a74: 77bb strb r3, [r7, #30] break; 8011a76: bf00 nop } if (pclk != 0U) 8011a78: 69bb ldr r3, [r7, #24] 8011a7a: 2b00 cmp r3, #0 8011a7c: d018 beq.n 8011ab0 { /* USARTDIV must be greater than or equal to 0d16 */ usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); 8011a7e: 687b ldr r3, [r7, #4] 8011a80: 685b ldr r3, [r3, #4] 8011a82: 085a lsrs r2, r3, #1 8011a84: 69bb ldr r3, [r7, #24] 8011a86: 441a add r2, r3 8011a88: 687b ldr r3, [r7, #4] 8011a8a: 685b ldr r3, [r3, #4] 8011a8c: fbb2 f3f3 udiv r3, r2, r3 8011a90: 613b str r3, [r7, #16] if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) 8011a92: 693b ldr r3, [r7, #16] 8011a94: 2b0f cmp r3, #15 8011a96: d909 bls.n 8011aac 8011a98: 693b ldr r3, [r7, #16] 8011a9a: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 8011a9e: d205 bcs.n 8011aac { huart->Instance->BRR = (uint16_t)usartdiv; 8011aa0: 687b ldr r3, [r7, #4] 8011aa2: 681b ldr r3, [r3, #0] 8011aa4: 693a ldr r2, [r7, #16] 8011aa6: b292 uxth r2, r2 8011aa8: 60da str r2, [r3, #12] 8011aaa: e001 b.n 8011ab0 } else { ret = HAL_ERROR; 8011aac: 2301 movs r3, #1 8011aae: 77bb strb r3, [r7, #30] } } /* Clear ISR function pointers */ huart->RxISR = NULL; 8011ab0: 687b ldr r3, [r7, #4] 8011ab2: 2200 movs r2, #0 8011ab4: 665a str r2, [r3, #100] ; 0x64 huart->TxISR = NULL; 8011ab6: 687b ldr r3, [r7, #4] 8011ab8: 2200 movs r2, #0 8011aba: 669a str r2, [r3, #104] ; 0x68 return ret; 8011abc: 7fbb ldrb r3, [r7, #30] } 8011abe: 4618 mov r0, r3 8011ac0: 3720 adds r7, #32 8011ac2: 46bd mov sp, r7 8011ac4: bd80 pop {r7, pc} 8011ac6: bf00 nop 8011ac8: 00f42400 .word 0x00f42400 08011acc : * @brief Configure the UART peripheral advanced features. * @param huart UART handle. * @retval None */ void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) { 8011acc: b480 push {r7} 8011ace: b083 sub sp, #12 8011ad0: af00 add r7, sp, #0 8011ad2: 6078 str r0, [r7, #4] /* Check whether the set of advanced features to configure is properly set */ assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); /* if required, configure TX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) 8011ad4: 687b ldr r3, [r7, #4] 8011ad6: 6a5b ldr r3, [r3, #36] ; 0x24 8011ad8: f003 0301 and.w r3, r3, #1 8011adc: 2b00 cmp r3, #0 8011ade: d00a beq.n 8011af6 { assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); 8011ae0: 687b ldr r3, [r7, #4] 8011ae2: 681b ldr r3, [r3, #0] 8011ae4: 687a ldr r2, [r7, #4] 8011ae6: 6812 ldr r2, [r2, #0] 8011ae8: 6852 ldr r2, [r2, #4] 8011aea: f422 3100 bic.w r1, r2, #131072 ; 0x20000 8011aee: 687a ldr r2, [r7, #4] 8011af0: 6a92 ldr r2, [r2, #40] ; 0x28 8011af2: 430a orrs r2, r1 8011af4: 605a str r2, [r3, #4] } /* if required, configure RX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) 8011af6: 687b ldr r3, [r7, #4] 8011af8: 6a5b ldr r3, [r3, #36] ; 0x24 8011afa: f003 0302 and.w r3, r3, #2 8011afe: 2b00 cmp r3, #0 8011b00: d00a beq.n 8011b18 { assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); 8011b02: 687b ldr r3, [r7, #4] 8011b04: 681b ldr r3, [r3, #0] 8011b06: 687a ldr r2, [r7, #4] 8011b08: 6812 ldr r2, [r2, #0] 8011b0a: 6852 ldr r2, [r2, #4] 8011b0c: f422 3180 bic.w r1, r2, #65536 ; 0x10000 8011b10: 687a ldr r2, [r7, #4] 8011b12: 6ad2 ldr r2, [r2, #44] ; 0x2c 8011b14: 430a orrs r2, r1 8011b16: 605a str r2, [r3, #4] } /* if required, configure data inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) 8011b18: 687b ldr r3, [r7, #4] 8011b1a: 6a5b ldr r3, [r3, #36] ; 0x24 8011b1c: f003 0304 and.w r3, r3, #4 8011b20: 2b00 cmp r3, #0 8011b22: d00a beq.n 8011b3a { assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); 8011b24: 687b ldr r3, [r7, #4] 8011b26: 681b ldr r3, [r3, #0] 8011b28: 687a ldr r2, [r7, #4] 8011b2a: 6812 ldr r2, [r2, #0] 8011b2c: 6852 ldr r2, [r2, #4] 8011b2e: f422 2180 bic.w r1, r2, #262144 ; 0x40000 8011b32: 687a ldr r2, [r7, #4] 8011b34: 6b12 ldr r2, [r2, #48] ; 0x30 8011b36: 430a orrs r2, r1 8011b38: 605a str r2, [r3, #4] } /* if required, configure RX/TX pins swap */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) 8011b3a: 687b ldr r3, [r7, #4] 8011b3c: 6a5b ldr r3, [r3, #36] ; 0x24 8011b3e: f003 0308 and.w r3, r3, #8 8011b42: 2b00 cmp r3, #0 8011b44: d00a beq.n 8011b5c { assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); 8011b46: 687b ldr r3, [r7, #4] 8011b48: 681b ldr r3, [r3, #0] 8011b4a: 687a ldr r2, [r7, #4] 8011b4c: 6812 ldr r2, [r2, #0] 8011b4e: 6852 ldr r2, [r2, #4] 8011b50: f422 4100 bic.w r1, r2, #32768 ; 0x8000 8011b54: 687a ldr r2, [r7, #4] 8011b56: 6b52 ldr r2, [r2, #52] ; 0x34 8011b58: 430a orrs r2, r1 8011b5a: 605a str r2, [r3, #4] } /* if required, configure RX overrun detection disabling */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) 8011b5c: 687b ldr r3, [r7, #4] 8011b5e: 6a5b ldr r3, [r3, #36] ; 0x24 8011b60: f003 0310 and.w r3, r3, #16 8011b64: 2b00 cmp r3, #0 8011b66: d00a beq.n 8011b7e { assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); 8011b68: 687b ldr r3, [r7, #4] 8011b6a: 681b ldr r3, [r3, #0] 8011b6c: 687a ldr r2, [r7, #4] 8011b6e: 6812 ldr r2, [r2, #0] 8011b70: 6892 ldr r2, [r2, #8] 8011b72: f422 5180 bic.w r1, r2, #4096 ; 0x1000 8011b76: 687a ldr r2, [r7, #4] 8011b78: 6b92 ldr r2, [r2, #56] ; 0x38 8011b7a: 430a orrs r2, r1 8011b7c: 609a str r2, [r3, #8] } /* if required, configure DMA disabling on reception error */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) 8011b7e: 687b ldr r3, [r7, #4] 8011b80: 6a5b ldr r3, [r3, #36] ; 0x24 8011b82: f003 0320 and.w r3, r3, #32 8011b86: 2b00 cmp r3, #0 8011b88: d00a beq.n 8011ba0 { assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); 8011b8a: 687b ldr r3, [r7, #4] 8011b8c: 681b ldr r3, [r3, #0] 8011b8e: 687a ldr r2, [r7, #4] 8011b90: 6812 ldr r2, [r2, #0] 8011b92: 6892 ldr r2, [r2, #8] 8011b94: f422 5100 bic.w r1, r2, #8192 ; 0x2000 8011b98: 687a ldr r2, [r7, #4] 8011b9a: 6bd2 ldr r2, [r2, #60] ; 0x3c 8011b9c: 430a orrs r2, r1 8011b9e: 609a str r2, [r3, #8] } /* if required, configure auto Baud rate detection scheme */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) 8011ba0: 687b ldr r3, [r7, #4] 8011ba2: 6a5b ldr r3, [r3, #36] ; 0x24 8011ba4: f003 0340 and.w r3, r3, #64 ; 0x40 8011ba8: 2b00 cmp r3, #0 8011baa: d01a beq.n 8011be2 { assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); 8011bac: 687b ldr r3, [r7, #4] 8011bae: 681b ldr r3, [r3, #0] 8011bb0: 687a ldr r2, [r7, #4] 8011bb2: 6812 ldr r2, [r2, #0] 8011bb4: 6852 ldr r2, [r2, #4] 8011bb6: f422 1180 bic.w r1, r2, #1048576 ; 0x100000 8011bba: 687a ldr r2, [r7, #4] 8011bbc: 6c12 ldr r2, [r2, #64] ; 0x40 8011bbe: 430a orrs r2, r1 8011bc0: 605a str r2, [r3, #4] /* set auto Baudrate detection parameters if detection is enabled */ if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) 8011bc2: 687b ldr r3, [r7, #4] 8011bc4: 6c1b ldr r3, [r3, #64] ; 0x40 8011bc6: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 8011bca: d10a bne.n 8011be2 { assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); 8011bcc: 687b ldr r3, [r7, #4] 8011bce: 681b ldr r3, [r3, #0] 8011bd0: 687a ldr r2, [r7, #4] 8011bd2: 6812 ldr r2, [r2, #0] 8011bd4: 6852 ldr r2, [r2, #4] 8011bd6: f422 01c0 bic.w r1, r2, #6291456 ; 0x600000 8011bda: 687a ldr r2, [r7, #4] 8011bdc: 6c52 ldr r2, [r2, #68] ; 0x44 8011bde: 430a orrs r2, r1 8011be0: 605a str r2, [r3, #4] } } /* if required, configure MSB first on communication line */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) 8011be2: 687b ldr r3, [r7, #4] 8011be4: 6a5b ldr r3, [r3, #36] ; 0x24 8011be6: f003 0380 and.w r3, r3, #128 ; 0x80 8011bea: 2b00 cmp r3, #0 8011bec: d00a beq.n 8011c04 { assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); 8011bee: 687b ldr r3, [r7, #4] 8011bf0: 681b ldr r3, [r3, #0] 8011bf2: 687a ldr r2, [r7, #4] 8011bf4: 6812 ldr r2, [r2, #0] 8011bf6: 6852 ldr r2, [r2, #4] 8011bf8: f422 2100 bic.w r1, r2, #524288 ; 0x80000 8011bfc: 687a ldr r2, [r7, #4] 8011bfe: 6c92 ldr r2, [r2, #72] ; 0x48 8011c00: 430a orrs r2, r1 8011c02: 605a str r2, [r3, #4] } } 8011c04: bf00 nop 8011c06: 370c adds r7, #12 8011c08: 46bd mov sp, r7 8011c0a: f85d 7b04 ldr.w r7, [sp], #4 8011c0e: 4770 bx lr 08011c10 : * @brief Check the UART Idle State. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) { 8011c10: b580 push {r7, lr} 8011c12: b086 sub sp, #24 8011c14: af02 add r7, sp, #8 8011c16: 6078 str r0, [r7, #4] uint32_t tickstart; /* Initialize the UART ErrorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8011c18: 687b ldr r3, [r7, #4] 8011c1a: 2200 movs r2, #0 8011c1c: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Init tickstart for timeout management */ tickstart = HAL_GetTick(); 8011c20: f7fb ff40 bl 800daa4 8011c24: 60f8 str r0, [r7, #12] /* Check if the Transmitter is enabled */ if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) 8011c26: 687b ldr r3, [r7, #4] 8011c28: 681b ldr r3, [r3, #0] 8011c2a: 681b ldr r3, [r3, #0] 8011c2c: f003 0308 and.w r3, r3, #8 8011c30: 2b08 cmp r3, #8 8011c32: d10e bne.n 8011c52 { /* Wait until TEACK flag is set */ if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) 8011c34: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 8011c38: 9300 str r3, [sp, #0] 8011c3a: 68fb ldr r3, [r7, #12] 8011c3c: 2200 movs r2, #0 8011c3e: f44f 1100 mov.w r1, #2097152 ; 0x200000 8011c42: 6878 ldr r0, [r7, #4] 8011c44: f000 f82d bl 8011ca2 8011c48: 4603 mov r3, r0 8011c4a: 2b00 cmp r3, #0 8011c4c: d001 beq.n 8011c52 { /* Timeout occurred */ return HAL_TIMEOUT; 8011c4e: 2303 movs r3, #3 8011c50: e023 b.n 8011c9a } } #if defined(USART_ISR_REACK) /* Check if the Receiver is enabled */ if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) 8011c52: 687b ldr r3, [r7, #4] 8011c54: 681b ldr r3, [r3, #0] 8011c56: 681b ldr r3, [r3, #0] 8011c58: f003 0304 and.w r3, r3, #4 8011c5c: 2b04 cmp r3, #4 8011c5e: d10e bne.n 8011c7e { /* Wait until REACK flag is set */ if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) 8011c60: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 8011c64: 9300 str r3, [sp, #0] 8011c66: 68fb ldr r3, [r7, #12] 8011c68: 2200 movs r2, #0 8011c6a: f44f 0180 mov.w r1, #4194304 ; 0x400000 8011c6e: 6878 ldr r0, [r7, #4] 8011c70: f000 f817 bl 8011ca2 8011c74: 4603 mov r3, r0 8011c76: 2b00 cmp r3, #0 8011c78: d001 beq.n 8011c7e { /* Timeout occurred */ return HAL_TIMEOUT; 8011c7a: 2303 movs r3, #3 8011c7c: e00d b.n 8011c9a } } #endif /* Initialize the UART State */ huart->gState = HAL_UART_STATE_READY; 8011c7e: 687b ldr r3, [r7, #4] 8011c80: 2220 movs r2, #32 8011c82: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8011c84: 687b ldr r3, [r7, #4] 8011c86: 2220 movs r2, #32 8011c88: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8011c8a: 687b ldr r3, [r7, #4] 8011c8c: 2200 movs r2, #0 8011c8e: 661a str r2, [r3, #96] ; 0x60 __HAL_UNLOCK(huart); 8011c90: 687b ldr r3, [r7, #4] 8011c92: 2200 movs r2, #0 8011c94: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_OK; 8011c98: 2300 movs r3, #0 } 8011c9a: 4618 mov r0, r3 8011c9c: 3710 adds r7, #16 8011c9e: 46bd mov sp, r7 8011ca0: bd80 pop {r7, pc} 08011ca2 : * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout) { 8011ca2: b580 push {r7, lr} 8011ca4: b09c sub sp, #112 ; 0x70 8011ca6: af00 add r7, sp, #0 8011ca8: 60f8 str r0, [r7, #12] 8011caa: 60b9 str r1, [r7, #8] 8011cac: 603b str r3, [r7, #0] 8011cae: 4613 mov r3, r2 8011cb0: 71fb strb r3, [r7, #7] /* Wait until flag is set */ while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 8011cb2: e0a5 b.n 8011e00 { /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) 8011cb4: 6fbb ldr r3, [r7, #120] ; 0x78 8011cb6: f1b3 3fff cmp.w r3, #4294967295 8011cba: f000 80a1 beq.w 8011e00 { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 8011cbe: f7fb fef1 bl 800daa4 8011cc2: 4602 mov r2, r0 8011cc4: 683b ldr r3, [r7, #0] 8011cc6: 1ad2 subs r2, r2, r3 8011cc8: 6fbb ldr r3, [r7, #120] ; 0x78 8011cca: 429a cmp r2, r3 8011ccc: d802 bhi.n 8011cd4 8011cce: 6fbb ldr r3, [r7, #120] ; 0x78 8011cd0: 2b00 cmp r3, #0 8011cd2: d13e bne.n 8011d52 { /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); 8011cd4: 68fb ldr r3, [r7, #12] 8011cd6: 681b ldr r3, [r3, #0] 8011cd8: 653b str r3, [r7, #80] ; 0x50 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011cda: 6d3b ldr r3, [r7, #80] ; 0x50 8011cdc: e853 3f00 ldrex r3, [r3] 8011ce0: 64fb str r3, [r7, #76] ; 0x4c return(result); 8011ce2: 6cfb ldr r3, [r7, #76] ; 0x4c 8011ce4: f423 73d0 bic.w r3, r3, #416 ; 0x1a0 8011ce8: 667b str r3, [r7, #100] ; 0x64 8011cea: 68fb ldr r3, [r7, #12] 8011cec: 681b ldr r3, [r3, #0] 8011cee: 461a mov r2, r3 8011cf0: 6e7b ldr r3, [r7, #100] ; 0x64 8011cf2: 65fb str r3, [r7, #92] ; 0x5c 8011cf4: 65ba str r2, [r7, #88] ; 0x58 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011cf6: 6db9 ldr r1, [r7, #88] ; 0x58 8011cf8: 6dfa ldr r2, [r7, #92] ; 0x5c 8011cfa: e841 2300 strex r3, r2, [r1] 8011cfe: 657b str r3, [r7, #84] ; 0x54 return(result); 8011d00: 6d7b ldr r3, [r7, #84] ; 0x54 8011d02: 2b00 cmp r3, #0 8011d04: d1e6 bne.n 8011cd4 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8011d06: 68fb ldr r3, [r7, #12] 8011d08: 681b ldr r3, [r3, #0] 8011d0a: 3308 adds r3, #8 8011d0c: 63fb str r3, [r7, #60] ; 0x3c __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011d0e: 6bfb ldr r3, [r7, #60] ; 0x3c 8011d10: e853 3f00 ldrex r3, [r3] 8011d14: 63bb str r3, [r7, #56] ; 0x38 return(result); 8011d16: 6bbb ldr r3, [r7, #56] ; 0x38 8011d18: f023 0301 bic.w r3, r3, #1 8011d1c: 663b str r3, [r7, #96] ; 0x60 8011d1e: 68fb ldr r3, [r7, #12] 8011d20: 681b ldr r3, [r3, #0] 8011d22: 3308 adds r3, #8 8011d24: 6e3a ldr r2, [r7, #96] ; 0x60 8011d26: 64ba str r2, [r7, #72] ; 0x48 8011d28: 647b str r3, [r7, #68] ; 0x44 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011d2a: 6c79 ldr r1, [r7, #68] ; 0x44 8011d2c: 6cba ldr r2, [r7, #72] ; 0x48 8011d2e: e841 2300 strex r3, r2, [r1] 8011d32: 643b str r3, [r7, #64] ; 0x40 return(result); 8011d34: 6c3b ldr r3, [r7, #64] ; 0x40 8011d36: 2b00 cmp r3, #0 8011d38: d1e5 bne.n 8011d06 huart->gState = HAL_UART_STATE_READY; 8011d3a: 68fb ldr r3, [r7, #12] 8011d3c: 2220 movs r2, #32 8011d3e: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8011d40: 68fb ldr r3, [r7, #12] 8011d42: 2220 movs r2, #32 8011d44: 67da str r2, [r3, #124] ; 0x7c __HAL_UNLOCK(huart); 8011d46: 68fb ldr r3, [r7, #12] 8011d48: 2200 movs r2, #0 8011d4a: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_TIMEOUT; 8011d4e: 2303 movs r3, #3 8011d50: e067 b.n 8011e22 } if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) 8011d52: 68fb ldr r3, [r7, #12] 8011d54: 681b ldr r3, [r3, #0] 8011d56: 681b ldr r3, [r3, #0] 8011d58: f003 0304 and.w r3, r3, #4 8011d5c: 2b00 cmp r3, #0 8011d5e: d04f beq.n 8011e00 { if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) 8011d60: 68fb ldr r3, [r7, #12] 8011d62: 681b ldr r3, [r3, #0] 8011d64: 69db ldr r3, [r3, #28] 8011d66: f403 6300 and.w r3, r3, #2048 ; 0x800 8011d6a: f5b3 6f00 cmp.w r3, #2048 ; 0x800 8011d6e: d147 bne.n 8011e00 { /* Clear Receiver Timeout flag*/ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); 8011d70: 68fb ldr r3, [r7, #12] 8011d72: 681b ldr r3, [r3, #0] 8011d74: f44f 6200 mov.w r2, #2048 ; 0x800 8011d78: 621a str r2, [r3, #32] /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); 8011d7a: 68fb ldr r3, [r7, #12] 8011d7c: 681b ldr r3, [r3, #0] 8011d7e: 62bb str r3, [r7, #40] ; 0x28 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011d80: 6abb ldr r3, [r7, #40] ; 0x28 8011d82: e853 3f00 ldrex r3, [r3] 8011d86: 627b str r3, [r7, #36] ; 0x24 return(result); 8011d88: 6a7b ldr r3, [r7, #36] ; 0x24 8011d8a: f423 73d0 bic.w r3, r3, #416 ; 0x1a0 8011d8e: 66fb str r3, [r7, #108] ; 0x6c 8011d90: 68fb ldr r3, [r7, #12] 8011d92: 681b ldr r3, [r3, #0] 8011d94: 461a mov r2, r3 8011d96: 6efb ldr r3, [r7, #108] ; 0x6c 8011d98: 637b str r3, [r7, #52] ; 0x34 8011d9a: 633a str r2, [r7, #48] ; 0x30 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011d9c: 6b39 ldr r1, [r7, #48] ; 0x30 8011d9e: 6b7a ldr r2, [r7, #52] ; 0x34 8011da0: e841 2300 strex r3, r2, [r1] 8011da4: 62fb str r3, [r7, #44] ; 0x2c return(result); 8011da6: 6afb ldr r3, [r7, #44] ; 0x2c 8011da8: 2b00 cmp r3, #0 8011daa: d1e6 bne.n 8011d7a ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8011dac: 68fb ldr r3, [r7, #12] 8011dae: 681b ldr r3, [r3, #0] 8011db0: 3308 adds r3, #8 8011db2: 617b str r3, [r7, #20] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011db4: 697b ldr r3, [r7, #20] 8011db6: e853 3f00 ldrex r3, [r3] 8011dba: 613b str r3, [r7, #16] return(result); 8011dbc: 693b ldr r3, [r7, #16] 8011dbe: f023 0301 bic.w r3, r3, #1 8011dc2: 66bb str r3, [r7, #104] ; 0x68 8011dc4: 68fb ldr r3, [r7, #12] 8011dc6: 681b ldr r3, [r3, #0] 8011dc8: 3308 adds r3, #8 8011dca: 6eba ldr r2, [r7, #104] ; 0x68 8011dcc: 623a str r2, [r7, #32] 8011dce: 61fb str r3, [r7, #28] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011dd0: 69f9 ldr r1, [r7, #28] 8011dd2: 6a3a ldr r2, [r7, #32] 8011dd4: e841 2300 strex r3, r2, [r1] 8011dd8: 61bb str r3, [r7, #24] return(result); 8011dda: 69bb ldr r3, [r7, #24] 8011ddc: 2b00 cmp r3, #0 8011dde: d1e5 bne.n 8011dac huart->gState = HAL_UART_STATE_READY; 8011de0: 68fb ldr r3, [r7, #12] 8011de2: 2220 movs r2, #32 8011de4: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8011de6: 68fb ldr r3, [r7, #12] 8011de8: 2220 movs r2, #32 8011dea: 67da str r2, [r3, #124] ; 0x7c huart->ErrorCode = HAL_UART_ERROR_RTO; 8011dec: 68fb ldr r3, [r7, #12] 8011dee: 2220 movs r2, #32 8011df0: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Process Unlocked */ __HAL_UNLOCK(huart); 8011df4: 68fb ldr r3, [r7, #12] 8011df6: 2200 movs r2, #0 8011df8: f883 2074 strb.w r2, [r3, #116] ; 0x74 return HAL_TIMEOUT; 8011dfc: 2303 movs r3, #3 8011dfe: e010 b.n 8011e22 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 8011e00: 68fb ldr r3, [r7, #12] 8011e02: 681b ldr r3, [r3, #0] 8011e04: 69da ldr r2, [r3, #28] 8011e06: 68bb ldr r3, [r7, #8] 8011e08: 401a ands r2, r3 8011e0a: 68bb ldr r3, [r7, #8] 8011e0c: 429a cmp r2, r3 8011e0e: bf0c ite eq 8011e10: 2301 moveq r3, #1 8011e12: 2300 movne r3, #0 8011e14: b2db uxtb r3, r3 8011e16: 461a mov r2, r3 8011e18: 79fb ldrb r3, [r7, #7] 8011e1a: 429a cmp r2, r3 8011e1c: f43f af4a beq.w 8011cb4 } } } } return HAL_OK; 8011e20: 2300 movs r3, #0 } 8011e22: 4618 mov r0, r3 8011e24: 3770 adds r7, #112 ; 0x70 8011e26: 46bd mov sp, r7 8011e28: bd80 pop {r7, pc} 08011e2a : * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). * @param huart UART handle. * @retval None */ static void UART_EndRxTransfer(UART_HandleTypeDef *huart) { 8011e2a: b480 push {r7} 8011e2c: b095 sub sp, #84 ; 0x54 8011e2e: af00 add r7, sp, #0 8011e30: 6078 str r0, [r7, #4] /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 8011e32: 687b ldr r3, [r7, #4] 8011e34: 681b ldr r3, [r3, #0] 8011e36: 637b str r3, [r7, #52] ; 0x34 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011e38: 6b7b ldr r3, [r7, #52] ; 0x34 8011e3a: e853 3f00 ldrex r3, [r3] 8011e3e: 633b str r3, [r7, #48] ; 0x30 return(result); 8011e40: 6b3b ldr r3, [r7, #48] ; 0x30 8011e42: f423 7390 bic.w r3, r3, #288 ; 0x120 8011e46: 64fb str r3, [r7, #76] ; 0x4c 8011e48: 687b ldr r3, [r7, #4] 8011e4a: 681b ldr r3, [r3, #0] 8011e4c: 461a mov r2, r3 8011e4e: 6cfb ldr r3, [r7, #76] ; 0x4c 8011e50: 643b str r3, [r7, #64] ; 0x40 8011e52: 63fa str r2, [r7, #60] ; 0x3c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011e54: 6bf9 ldr r1, [r7, #60] ; 0x3c 8011e56: 6c3a ldr r2, [r7, #64] ; 0x40 8011e58: e841 2300 strex r3, r2, [r1] 8011e5c: 63bb str r3, [r7, #56] ; 0x38 return(result); 8011e5e: 6bbb ldr r3, [r7, #56] ; 0x38 8011e60: 2b00 cmp r3, #0 8011e62: d1e6 bne.n 8011e32 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8011e64: 687b ldr r3, [r7, #4] 8011e66: 681b ldr r3, [r3, #0] 8011e68: 3308 adds r3, #8 8011e6a: 623b str r3, [r7, #32] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011e6c: 6a3b ldr r3, [r7, #32] 8011e6e: e853 3f00 ldrex r3, [r3] 8011e72: 61fb str r3, [r7, #28] return(result); 8011e74: 69fb ldr r3, [r7, #28] 8011e76: f023 0301 bic.w r3, r3, #1 8011e7a: 64bb str r3, [r7, #72] ; 0x48 8011e7c: 687b ldr r3, [r7, #4] 8011e7e: 681b ldr r3, [r3, #0] 8011e80: 3308 adds r3, #8 8011e82: 6cba ldr r2, [r7, #72] ; 0x48 8011e84: 62fa str r2, [r7, #44] ; 0x2c 8011e86: 62bb str r3, [r7, #40] ; 0x28 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011e88: 6ab9 ldr r1, [r7, #40] ; 0x28 8011e8a: 6afa ldr r2, [r7, #44] ; 0x2c 8011e8c: e841 2300 strex r3, r2, [r1] 8011e90: 627b str r3, [r7, #36] ; 0x24 return(result); 8011e92: 6a7b ldr r3, [r7, #36] ; 0x24 8011e94: 2b00 cmp r3, #0 8011e96: d1e5 bne.n 8011e64 /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 8011e98: 687b ldr r3, [r7, #4] 8011e9a: 6e1b ldr r3, [r3, #96] ; 0x60 8011e9c: 2b01 cmp r3, #1 8011e9e: d118 bne.n 8011ed2 { ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8011ea0: 687b ldr r3, [r7, #4] 8011ea2: 681b ldr r3, [r3, #0] 8011ea4: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8011ea6: 68fb ldr r3, [r7, #12] 8011ea8: e853 3f00 ldrex r3, [r3] 8011eac: 60bb str r3, [r7, #8] return(result); 8011eae: 68bb ldr r3, [r7, #8] 8011eb0: f023 0310 bic.w r3, r3, #16 8011eb4: 647b str r3, [r7, #68] ; 0x44 8011eb6: 687b ldr r3, [r7, #4] 8011eb8: 681b ldr r3, [r3, #0] 8011eba: 461a mov r2, r3 8011ebc: 6c7b ldr r3, [r7, #68] ; 0x44 8011ebe: 61bb str r3, [r7, #24] 8011ec0: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8011ec2: 6979 ldr r1, [r7, #20] 8011ec4: 69ba ldr r2, [r7, #24] 8011ec6: e841 2300 strex r3, r2, [r1] 8011eca: 613b str r3, [r7, #16] return(result); 8011ecc: 693b ldr r3, [r7, #16] 8011ece: 2b00 cmp r3, #0 8011ed0: d1e6 bne.n 8011ea0 } /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; 8011ed2: 687b ldr r3, [r7, #4] 8011ed4: 2220 movs r2, #32 8011ed6: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8011ed8: 687b ldr r3, [r7, #4] 8011eda: 2200 movs r2, #0 8011edc: 661a str r2, [r3, #96] ; 0x60 /* Reset RxIsr function pointer */ huart->RxISR = NULL; 8011ede: 687b ldr r3, [r7, #4] 8011ee0: 2200 movs r2, #0 8011ee2: 665a str r2, [r3, #100] ; 0x64 } 8011ee4: bf00 nop 8011ee6: 3754 adds r7, #84 ; 0x54 8011ee8: 46bd mov sp, r7 8011eea: f85d 7b04 ldr.w r7, [sp], #4 8011eee: 4770 bx lr 08011ef0 : * (To be called at end of DMA Abort procedure following error occurrence). * @param hdma DMA handle. * @retval None */ static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) { 8011ef0: b580 push {r7, lr} 8011ef2: b084 sub sp, #16 8011ef4: af00 add r7, sp, #0 8011ef6: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 8011ef8: 687b ldr r3, [r7, #4] 8011efa: 6b9b ldr r3, [r3, #56] ; 0x38 8011efc: 60fb str r3, [r7, #12] huart->RxXferCount = 0U; 8011efe: 68fb ldr r3, [r7, #12] 8011f00: 2200 movs r2, #0 8011f02: f8a3 205a strh.w r2, [r3, #90] ; 0x5a huart->TxXferCount = 0U; 8011f06: 68fb ldr r3, [r7, #12] 8011f08: 2200 movs r2, #0 8011f0a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 8011f0e: 68f8 ldr r0, [r7, #12] 8011f10: f7fa fa78 bl 800c404 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 8011f14: bf00 nop 8011f16: 3710 adds r7, #16 8011f18: 46bd mov sp, r7 8011f1a: bd80 pop {r7, pc} 08011f1c : * Abort still ongoing for Rx DMA Handle. * @param hdma DMA handle. * @retval None */ static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) { 8011f1c: b580 push {r7, lr} 8011f1e: b084 sub sp, #16 8011f20: af00 add r7, sp, #0 8011f22: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 8011f24: 687b ldr r3, [r7, #4] 8011f26: 6b9b ldr r3, [r3, #56] ; 0x38 8011f28: 60fb str r3, [r7, #12] huart->hdmatx->XferAbortCallback = NULL; 8011f2a: 68fb ldr r3, [r7, #12] 8011f2c: 6edb ldr r3, [r3, #108] ; 0x6c 8011f2e: 2200 movs r2, #0 8011f30: 651a str r2, [r3, #80] ; 0x50 /* Check if an Abort process is still ongoing */ if (huart->hdmarx != NULL) 8011f32: 68fb ldr r3, [r7, #12] 8011f34: 6f1b ldr r3, [r3, #112] ; 0x70 8011f36: 2b00 cmp r3, #0 8011f38: d004 beq.n 8011f44 { if (huart->hdmarx->XferAbortCallback != NULL) 8011f3a: 68fb ldr r3, [r7, #12] 8011f3c: 6f1b ldr r3, [r3, #112] ; 0x70 8011f3e: 6d1b ldr r3, [r3, #80] ; 0x50 8011f40: 2b00 cmp r3, #0 8011f42: d11c bne.n 8011f7e return; } } /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ huart->TxXferCount = 0U; 8011f44: 68fb ldr r3, [r7, #12] 8011f46: 2200 movs r2, #0 8011f48: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 8011f4c: 68fb ldr r3, [r7, #12] 8011f4e: 2200 movs r2, #0 8011f50: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8011f54: 68fb ldr r3, [r7, #12] 8011f56: 2200 movs r2, #0 8011f58: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 8011f5c: 68fb ldr r3, [r7, #12] 8011f5e: 681b ldr r3, [r3, #0] 8011f60: 220f movs r2, #15 8011f62: 621a str r2, [r3, #32] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 8011f64: 68fb ldr r3, [r7, #12] 8011f66: 2220 movs r2, #32 8011f68: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8011f6a: 68fb ldr r3, [r7, #12] 8011f6c: 2220 movs r2, #32 8011f6e: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8011f70: 68fb ldr r3, [r7, #12] 8011f72: 2200 movs r2, #0 8011f74: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 8011f76: 68f8 ldr r0, [r7, #12] 8011f78: f7ff fb28 bl 80115cc 8011f7c: e000 b.n 8011f80 return; 8011f7e: bf00 nop #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 8011f80: 3710 adds r7, #16 8011f82: 46bd mov sp, r7 8011f84: bd80 pop {r7, pc} 08011f86 : * Abort still ongoing for Tx DMA Handle. * @param hdma DMA handle. * @retval None */ static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) { 8011f86: b580 push {r7, lr} 8011f88: b084 sub sp, #16 8011f8a: af00 add r7, sp, #0 8011f8c: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); 8011f8e: 687b ldr r3, [r7, #4] 8011f90: 6b9b ldr r3, [r3, #56] ; 0x38 8011f92: 60fb str r3, [r7, #12] huart->hdmarx->XferAbortCallback = NULL; 8011f94: 68fb ldr r3, [r7, #12] 8011f96: 6f1b ldr r3, [r3, #112] ; 0x70 8011f98: 2200 movs r2, #0 8011f9a: 651a str r2, [r3, #80] ; 0x50 /* Check if an Abort process is still ongoing */ if (huart->hdmatx != NULL) 8011f9c: 68fb ldr r3, [r7, #12] 8011f9e: 6edb ldr r3, [r3, #108] ; 0x6c 8011fa0: 2b00 cmp r3, #0 8011fa2: d004 beq.n 8011fae { if (huart->hdmatx->XferAbortCallback != NULL) 8011fa4: 68fb ldr r3, [r7, #12] 8011fa6: 6edb ldr r3, [r3, #108] ; 0x6c 8011fa8: 6d1b ldr r3, [r3, #80] ; 0x50 8011faa: 2b00 cmp r3, #0 8011fac: d124 bne.n 8011ff8 return; } } /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */ huart->TxXferCount = 0U; 8011fae: 68fb ldr r3, [r7, #12] 8011fb0: 2200 movs r2, #0 8011fb2: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 huart->RxXferCount = 0U; 8011fb6: 68fb ldr r3, [r7, #12] 8011fb8: 2200 movs r2, #0 8011fba: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Reset errorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8011fbe: 68fb ldr r3, [r7, #12] 8011fc0: 2200 movs r2, #0 8011fc2: f8c3 2080 str.w r2, [r3, #128] ; 0x80 /* Clear the Error flags in the ICR register */ __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); 8011fc6: 68fb ldr r3, [r7, #12] 8011fc8: 681b ldr r3, [r3, #0] 8011fca: 220f movs r2, #15 8011fcc: 621a str r2, [r3, #32] /* Discard the received data */ __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); 8011fce: 68fb ldr r3, [r7, #12] 8011fd0: 681b ldr r3, [r3, #0] 8011fd2: 68fa ldr r2, [r7, #12] 8011fd4: 6812 ldr r2, [r2, #0] 8011fd6: 6992 ldr r2, [r2, #24] 8011fd8: f042 0208 orr.w r2, r2, #8 8011fdc: 619a str r2, [r3, #24] /* Restore huart->gState and huart->RxState to Ready */ huart->gState = HAL_UART_STATE_READY; 8011fde: 68fb ldr r3, [r7, #12] 8011fe0: 2220 movs r2, #32 8011fe2: 679a str r2, [r3, #120] ; 0x78 huart->RxState = HAL_UART_STATE_READY; 8011fe4: 68fb ldr r3, [r7, #12] 8011fe6: 2220 movs r2, #32 8011fe8: 67da str r2, [r3, #124] ; 0x7c huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8011fea: 68fb ldr r3, [r7, #12] 8011fec: 2200 movs r2, #0 8011fee: 661a str r2, [r3, #96] ; 0x60 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /* Call registered Abort complete callback */ huart->AbortCpltCallback(huart); #else /* Call legacy weak Abort complete callback */ HAL_UART_AbortCpltCallback(huart); 8011ff0: 68f8 ldr r0, [r7, #12] 8011ff2: f7ff faeb bl 80115cc 8011ff6: e000 b.n 8011ffa return; 8011ff8: bf00 nop #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 8011ffa: 3710 adds r7, #16 8011ffc: 46bd mov sp, r7 8011ffe: bd80 pop {r7, pc} 08012000 : * interruptions have been enabled by HAL_UART_Transmit_IT(). * @param huart UART handle. * @retval None */ static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) { 8012000: b480 push {r7} 8012002: b08f sub sp, #60 ; 0x3c 8012004: af00 add r7, sp, #0 8012006: 6078 str r0, [r7, #4] /* Check that a Tx process is ongoing */ if (huart->gState == HAL_UART_STATE_BUSY_TX) 8012008: 687b ldr r3, [r7, #4] 801200a: 6f9b ldr r3, [r3, #120] ; 0x78 801200c: 2b21 cmp r3, #33 ; 0x21 801200e: d14c bne.n 80120aa { if (huart->TxXferCount == 0U) 8012010: 687b ldr r3, [r7, #4] 8012012: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 8012016: b29b uxth r3, r3 8012018: 2b00 cmp r3, #0 801201a: d132 bne.n 8012082 { /* Disable the UART Transmit Data Register Empty Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 801201c: 687b ldr r3, [r7, #4] 801201e: 681b ldr r3, [r3, #0] 8012020: 623b str r3, [r7, #32] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8012022: 6a3b ldr r3, [r7, #32] 8012024: e853 3f00 ldrex r3, [r3] 8012028: 61fb str r3, [r7, #28] return(result); 801202a: 69fb ldr r3, [r7, #28] 801202c: f023 0380 bic.w r3, r3, #128 ; 0x80 8012030: 637b str r3, [r7, #52] ; 0x34 8012032: 687b ldr r3, [r7, #4] 8012034: 681b ldr r3, [r3, #0] 8012036: 461a mov r2, r3 8012038: 6b7b ldr r3, [r7, #52] ; 0x34 801203a: 62fb str r3, [r7, #44] ; 0x2c 801203c: 62ba str r2, [r7, #40] ; 0x28 __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801203e: 6ab9 ldr r1, [r7, #40] ; 0x28 8012040: 6afa ldr r2, [r7, #44] ; 0x2c 8012042: e841 2300 strex r3, r2, [r1] 8012046: 627b str r3, [r7, #36] ; 0x24 return(result); 8012048: 6a7b ldr r3, [r7, #36] ; 0x24 801204a: 2b00 cmp r3, #0 801204c: d1e6 bne.n 801201c /* Enable the UART Transmit Complete Interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 801204e: 687b ldr r3, [r7, #4] 8012050: 681b ldr r3, [r3, #0] 8012052: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8012054: 68fb ldr r3, [r7, #12] 8012056: e853 3f00 ldrex r3, [r3] 801205a: 60bb str r3, [r7, #8] return(result); 801205c: 68bb ldr r3, [r7, #8] 801205e: f043 0340 orr.w r3, r3, #64 ; 0x40 8012062: 633b str r3, [r7, #48] ; 0x30 8012064: 687b ldr r3, [r7, #4] 8012066: 681b ldr r3, [r3, #0] 8012068: 461a mov r2, r3 801206a: 6b3b ldr r3, [r7, #48] ; 0x30 801206c: 61bb str r3, [r7, #24] 801206e: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8012070: 6979 ldr r1, [r7, #20] 8012072: 69ba ldr r2, [r7, #24] 8012074: e841 2300 strex r3, r2, [r1] 8012078: 613b str r3, [r7, #16] return(result); 801207a: 693b ldr r3, [r7, #16] 801207c: 2b00 cmp r3, #0 801207e: d1e6 bne.n 801204e huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); huart->pTxBuffPtr++; huart->TxXferCount--; } } } 8012080: e013 b.n 80120aa huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); 8012082: 687b ldr r3, [r7, #4] 8012084: 681b ldr r3, [r3, #0] 8012086: 687a ldr r2, [r7, #4] 8012088: 6cd2 ldr r2, [r2, #76] ; 0x4c 801208a: 7812 ldrb r2, [r2, #0] 801208c: 629a str r2, [r3, #40] ; 0x28 huart->pTxBuffPtr++; 801208e: 687b ldr r3, [r7, #4] 8012090: 6cdb ldr r3, [r3, #76] ; 0x4c 8012092: 1c5a adds r2, r3, #1 8012094: 687b ldr r3, [r7, #4] 8012096: 64da str r2, [r3, #76] ; 0x4c huart->TxXferCount--; 8012098: 687b ldr r3, [r7, #4] 801209a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 801209e: b29b uxth r3, r3 80120a0: 3b01 subs r3, #1 80120a2: b29a uxth r2, r3 80120a4: 687b ldr r3, [r7, #4] 80120a6: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 } 80120aa: bf00 nop 80120ac: 373c adds r7, #60 ; 0x3c 80120ae: 46bd mov sp, r7 80120b0: f85d 7b04 ldr.w r7, [sp], #4 80120b4: 4770 bx lr 080120b6 : * interruptions have been enabled by HAL_UART_Transmit_IT(). * @param huart UART handle. * @retval None */ static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) { 80120b6: b480 push {r7} 80120b8: b091 sub sp, #68 ; 0x44 80120ba: af00 add r7, sp, #0 80120bc: 6078 str r0, [r7, #4] const uint16_t *tmp; /* Check that a Tx process is ongoing */ if (huart->gState == HAL_UART_STATE_BUSY_TX) 80120be: 687b ldr r3, [r7, #4] 80120c0: 6f9b ldr r3, [r3, #120] ; 0x78 80120c2: 2b21 cmp r3, #33 ; 0x21 80120c4: d150 bne.n 8012168 { if (huart->TxXferCount == 0U) 80120c6: 687b ldr r3, [r7, #4] 80120c8: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 80120cc: b29b uxth r3, r3 80120ce: 2b00 cmp r3, #0 80120d0: d132 bne.n 8012138 { /* Disable the UART Transmit Data Register Empty Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); 80120d2: 687b ldr r3, [r7, #4] 80120d4: 681b ldr r3, [r3, #0] 80120d6: 627b str r3, [r7, #36] ; 0x24 __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 80120d8: 6a7b ldr r3, [r7, #36] ; 0x24 80120da: e853 3f00 ldrex r3, [r3] 80120de: 623b str r3, [r7, #32] return(result); 80120e0: 6a3b ldr r3, [r7, #32] 80120e2: f023 0380 bic.w r3, r3, #128 ; 0x80 80120e6: 63fb str r3, [r7, #60] ; 0x3c 80120e8: 687b ldr r3, [r7, #4] 80120ea: 681b ldr r3, [r3, #0] 80120ec: 461a mov r2, r3 80120ee: 6bfb ldr r3, [r7, #60] ; 0x3c 80120f0: 633b str r3, [r7, #48] ; 0x30 80120f2: 62fa str r2, [r7, #44] ; 0x2c __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 80120f4: 6af9 ldr r1, [r7, #44] ; 0x2c 80120f6: 6b3a ldr r2, [r7, #48] ; 0x30 80120f8: e841 2300 strex r3, r2, [r1] 80120fc: 62bb str r3, [r7, #40] ; 0x28 return(result); 80120fe: 6abb ldr r3, [r7, #40] ; 0x28 8012100: 2b00 cmp r3, #0 8012102: d1e6 bne.n 80120d2 /* Enable the UART Transmit Complete Interrupt */ ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 8012104: 687b ldr r3, [r7, #4] 8012106: 681b ldr r3, [r3, #0] 8012108: 613b str r3, [r7, #16] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 801210a: 693b ldr r3, [r7, #16] 801210c: e853 3f00 ldrex r3, [r3] 8012110: 60fb str r3, [r7, #12] return(result); 8012112: 68fb ldr r3, [r7, #12] 8012114: f043 0340 orr.w r3, r3, #64 ; 0x40 8012118: 63bb str r3, [r7, #56] ; 0x38 801211a: 687b ldr r3, [r7, #4] 801211c: 681b ldr r3, [r3, #0] 801211e: 461a mov r2, r3 8012120: 6bbb ldr r3, [r7, #56] ; 0x38 8012122: 61fb str r3, [r7, #28] 8012124: 61ba str r2, [r7, #24] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 8012126: 69b9 ldr r1, [r7, #24] 8012128: 69fa ldr r2, [r7, #28] 801212a: e841 2300 strex r3, r2, [r1] 801212e: 617b str r3, [r7, #20] return(result); 8012130: 697b ldr r3, [r7, #20] 8012132: 2b00 cmp r3, #0 8012134: d1e6 bne.n 8012104 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); huart->pTxBuffPtr += 2U; huart->TxXferCount--; } } } 8012136: e017 b.n 8012168 tmp = (const uint16_t *) huart->pTxBuffPtr; 8012138: 687b ldr r3, [r7, #4] 801213a: 6cdb ldr r3, [r3, #76] ; 0x4c 801213c: 637b str r3, [r7, #52] ; 0x34 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); 801213e: 687b ldr r3, [r7, #4] 8012140: 681b ldr r3, [r3, #0] 8012142: 6b7a ldr r2, [r7, #52] ; 0x34 8012144: 8812 ldrh r2, [r2, #0] 8012146: f3c2 0208 ubfx r2, r2, #0, #9 801214a: 629a str r2, [r3, #40] ; 0x28 huart->pTxBuffPtr += 2U; 801214c: 687b ldr r3, [r7, #4] 801214e: 6cdb ldr r3, [r3, #76] ; 0x4c 8012150: 1c9a adds r2, r3, #2 8012152: 687b ldr r3, [r7, #4] 8012154: 64da str r2, [r3, #76] ; 0x4c huart->TxXferCount--; 8012156: 687b ldr r3, [r7, #4] 8012158: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 801215c: b29b uxth r3, r3 801215e: 3b01 subs r3, #1 8012160: b29a uxth r2, r3 8012162: 687b ldr r3, [r7, #4] 8012164: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 } 8012168: bf00 nop 801216a: 3744 adds r7, #68 ; 0x44 801216c: 46bd mov sp, r7 801216e: f85d 7b04 ldr.w r7, [sp], #4 8012172: 4770 bx lr 08012174 : * @param huart pointer to a UART_HandleTypeDef structure that contains * the configuration information for the specified UART module. * @retval None */ static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) { 8012174: b580 push {r7, lr} 8012176: b088 sub sp, #32 8012178: af00 add r7, sp, #0 801217a: 6078 str r0, [r7, #4] /* Disable the UART Transmit Complete Interrupt */ ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); 801217c: 687b ldr r3, [r7, #4] 801217e: 681b ldr r3, [r3, #0] 8012180: 60fb str r3, [r7, #12] __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 8012182: 68fb ldr r3, [r7, #12] 8012184: e853 3f00 ldrex r3, [r3] 8012188: 60bb str r3, [r7, #8] return(result); 801218a: 68bb ldr r3, [r7, #8] 801218c: f023 0340 bic.w r3, r3, #64 ; 0x40 8012190: 61fb str r3, [r7, #28] 8012192: 687b ldr r3, [r7, #4] 8012194: 681b ldr r3, [r3, #0] 8012196: 461a mov r2, r3 8012198: 69fb ldr r3, [r7, #28] 801219a: 61bb str r3, [r7, #24] 801219c: 617a str r2, [r7, #20] __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 801219e: 6979 ldr r1, [r7, #20] 80121a0: 69ba ldr r2, [r7, #24] 80121a2: e841 2300 strex r3, r2, [r1] 80121a6: 613b str r3, [r7, #16] return(result); 80121a8: 693b ldr r3, [r7, #16] 80121aa: 2b00 cmp r3, #0 80121ac: d1e6 bne.n 801217c /* Tx process is ended, restore huart->gState to Ready */ huart->gState = HAL_UART_STATE_READY; 80121ae: 687b ldr r3, [r7, #4] 80121b0: 2220 movs r2, #32 80121b2: 679a str r2, [r3, #120] ; 0x78 /* Cleat TxISR function pointer */ huart->TxISR = NULL; 80121b4: 687b ldr r3, [r7, #4] 80121b6: 2200 movs r2, #0 80121b8: 669a str r2, [r3, #104] ; 0x68 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Tx complete callback*/ huart->TxCpltCallback(huart); #else /*Call legacy weak Tx complete callback*/ HAL_UART_TxCpltCallback(huart); 80121ba: 6878 ldr r0, [r7, #4] 80121bc: f7fa f8fc bl 800c3b8 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } 80121c0: bf00 nop 80121c2: 3720 adds r7, #32 80121c4: 46bd mov sp, r7 80121c6: bd80 pop {r7, pc} 080121c8 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr sp, =_estack /* set stack pointer */ 80121c8: f8df d034 ldr.w sp, [pc, #52] ; 8012200 /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 80121cc: 2100 movs r1, #0 b LoopCopyDataInit 80121ce: e003 b.n 80121d8 080121d0 : CopyDataInit: ldr r3, =_sidata 80121d0: 4b0c ldr r3, [pc, #48] ; (8012204 ) ldr r3, [r3, r1] 80121d2: 585b ldr r3, [r3, r1] str r3, [r0, r1] 80121d4: 5043 str r3, [r0, r1] adds r1, r1, #4 80121d6: 3104 adds r1, #4 080121d8 : LoopCopyDataInit: ldr r0, =_sdata 80121d8: 480b ldr r0, [pc, #44] ; (8012208 ) ldr r3, =_edata 80121da: 4b0c ldr r3, [pc, #48] ; (801220c ) adds r2, r0, r1 80121dc: 1842 adds r2, r0, r1 cmp r2, r3 80121de: 429a cmp r2, r3 bcc CopyDataInit 80121e0: d3f6 bcc.n 80121d0 ldr r2, =_sbss 80121e2: 4a0b ldr r2, [pc, #44] ; (8012210 ) b LoopFillZerobss 80121e4: e002 b.n 80121ec 080121e6 : /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 80121e6: 2300 movs r3, #0 str r3, [r2], #4 80121e8: f842 3b04 str.w r3, [r2], #4 080121ec : LoopFillZerobss: ldr r3, = _ebss 80121ec: 4b09 ldr r3, [pc, #36] ; (8012214 ) cmp r2, r3 80121ee: 429a cmp r2, r3 bcc FillZerobss 80121f0: d3f9 bcc.n 80121e6 /* Call the clock system initialization function.*/ bl SystemInit 80121f2: f7f9 fe23 bl 800be3c /* Call static constructors */ bl __libc_init_array 80121f6: f000 f85f bl 80122b8 <__libc_init_array> /* Call the application's entry point.*/ bl main 80121fa: f7f3 f845 bl 8005288
bx lr 80121fe: 4770 bx lr ldr sp, =_estack /* set stack pointer */ 8012200: 20080000 .word 0x20080000 ldr r3, =_sidata 8012204: 0802a460 .word 0x0802a460 ldr r0, =_sdata 8012208: 20020000 .word 0x20020000 ldr r3, =_edata 801220c: 20020228 .word 0x20020228 ldr r2, =_sbss 8012210: 20020228 .word 0x20020228 ldr r3, = _ebss 8012214: 2006bf30 .word 0x2006bf30 08012218 : * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop 8012218: e7fe b.n 8012218 ... 0801221c : 801221c: ee10 2a10 vmov r2, s0 8012220: f3c2 51c7 ubfx r1, r2, #23, #8 8012224: 397f subs r1, #127 ; 0x7f 8012226: 2916 cmp r1, #22 8012228: b510 push {r4, lr} 801222a: ee10 3a10 vmov r3, s0 801222e: dc0c bgt.n 801224a 8012230: 2900 cmp r1, #0 8012232: da05 bge.n 8012240 8012234: f002 4300 and.w r3, r2, #2147483648 ; 0x80000000 8012238: 6003 str r3, [r0, #0] 801223a: ee00 2a10 vmov s0, r2 801223e: bd10 pop {r4, pc} 8012240: 4c09 ldr r4, [pc, #36] ; (8012268 ) 8012242: fa44 f101 asr.w r1, r4, r1 8012246: 420a tst r2, r1 8012248: d103 bne.n 8012252 801224a: 6002 str r2, [r0, #0] 801224c: f003 4200 and.w r2, r3, #2147483648 ; 0x80000000 8012250: e7f3 b.n 801223a 8012252: ea22 0301 bic.w r3, r2, r1 8012256: ee07 3a10 vmov s14, r3 801225a: ee70 7a47 vsub.f32 s15, s0, s14 801225e: 6003 str r3, [r0, #0] 8012260: ee17 2a90 vmov r2, s15 8012264: e7e9 b.n 801223a 8012266: bf00 nop 8012268: 007fffff .word 0x007fffff 0801226c : 801226c: ee10 0a10 vmov r0, s0 8012270: f3c0 53c7 ubfx r3, r0, #23, #8 8012274: f1a3 027f sub.w r2, r3, #127 ; 0x7f 8012278: 2a16 cmp r2, #22 801227a: dc15 bgt.n 80122a8 801227c: 2a00 cmp r2, #0 801227e: da08 bge.n 8012292 8012280: 3201 adds r2, #1 8012282: f000 4300 and.w r3, r0, #2147483648 ; 0x80000000 8012286: d101 bne.n 801228c 8012288: f043 537e orr.w r3, r3, #1065353216 ; 0x3f800000 801228c: ee00 3a10 vmov s0, r3 8012290: 4770 bx lr 8012292: 4908 ldr r1, [pc, #32] ; (80122b4 ) 8012294: 4111 asrs r1, r2 8012296: 4208 tst r0, r1 8012298: d0fa beq.n 8012290 801229a: f44f 0380 mov.w r3, #4194304 ; 0x400000 801229e: 4113 asrs r3, r2 80122a0: 4403 add r3, r0 80122a2: ea23 0301 bic.w r3, r3, r1 80122a6: e7f1 b.n 801228c 80122a8: 2a80 cmp r2, #128 ; 0x80 80122aa: d1f1 bne.n 8012290 80122ac: ee30 0a00 vadd.f32 s0, s0, s0 80122b0: 4770 bx lr 80122b2: bf00 nop 80122b4: 007fffff .word 0x007fffff 080122b8 <__libc_init_array>: 80122b8: b570 push {r4, r5, r6, lr} 80122ba: 4e0d ldr r6, [pc, #52] ; (80122f0 <__libc_init_array+0x38>) 80122bc: 4c0d ldr r4, [pc, #52] ; (80122f4 <__libc_init_array+0x3c>) 80122be: 1ba4 subs r4, r4, r6 80122c0: 10a4 asrs r4, r4, #2 80122c2: 2500 movs r5, #0 80122c4: 42a5 cmp r5, r4 80122c6: d109 bne.n 80122dc <__libc_init_array+0x24> 80122c8: 4e0b ldr r6, [pc, #44] ; (80122f8 <__libc_init_array+0x40>) 80122ca: 4c0c ldr r4, [pc, #48] ; (80122fc <__libc_init_array+0x44>) 80122cc: f000 f834 bl 8012338 <_init> 80122d0: 1ba4 subs r4, r4, r6 80122d2: 10a4 asrs r4, r4, #2 80122d4: 2500 movs r5, #0 80122d6: 42a5 cmp r5, r4 80122d8: d105 bne.n 80122e6 <__libc_init_array+0x2e> 80122da: bd70 pop {r4, r5, r6, pc} 80122dc: f856 3025 ldr.w r3, [r6, r5, lsl #2] 80122e0: 4798 blx r3 80122e2: 3501 adds r5, #1 80122e4: e7ee b.n 80122c4 <__libc_init_array+0xc> 80122e6: f856 3025 ldr.w r3, [r6, r5, lsl #2] 80122ea: 4798 blx r3 80122ec: 3501 adds r5, #1 80122ee: e7f2 b.n 80122d6 <__libc_init_array+0x1e> 80122f0: 0802a458 .word 0x0802a458 80122f4: 0802a458 .word 0x0802a458 80122f8: 0802a458 .word 0x0802a458 80122fc: 0802a45c .word 0x0802a45c 08012300 : 8012300: b510 push {r4, lr} 8012302: 1e43 subs r3, r0, #1 8012304: 440a add r2, r1 8012306: 4291 cmp r1, r2 8012308: d100 bne.n 801230c 801230a: bd10 pop {r4, pc} 801230c: f811 4b01 ldrb.w r4, [r1], #1 8012310: f803 4f01 strb.w r4, [r3, #1]! 8012314: e7f7 b.n 8012306 08012316 : 8012316: 4402 add r2, r0 8012318: 4603 mov r3, r0 801231a: 4293 cmp r3, r2 801231c: d100 bne.n 8012320 801231e: 4770 bx lr 8012320: f803 1b01 strb.w r1, [r3], #1 8012324: e7f9 b.n 801231a 08012326 : 8012326: 4603 mov r3, r0 8012328: f811 2b01 ldrb.w r2, [r1], #1 801232c: f803 2b01 strb.w r2, [r3], #1 8012330: 2a00 cmp r2, #0 8012332: d1f9 bne.n 8012328 8012334: 4770 bx lr ... 08012338 <_init>: 8012338: b5f8 push {r3, r4, r5, r6, r7, lr} 801233a: bf00 nop 801233c: bcf8 pop {r3, r4, r5, r6, r7} 801233e: bc08 pop {r3} 8012340: 469e mov lr, r3 8012342: 4770 bx lr 08012344 <_fini>: 8012344: b5f8 push {r3, r4, r5, r6, r7, lr} 8012346: bf00 nop 8012348: bcf8 pop {r3, r4, r5, r6, r7} 801234a: bc08 pop {r3} 801234c: 469e mov lr, r3 801234e: 4770 bx lr