labW2barnestr.elf: file format elf32-littlearm Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001c4 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 00001bbc 080001d0 080001d0 000101d0 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .rodata 0000022c 08001d8c 08001d8c 00011d8c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .ARM.extab 00000000 08001fb8 08001fb8 00020068 2**0 CONTENTS 4 .ARM 00000000 08001fb8 08001fb8 00020068 2**0 CONTENTS 5 .preinit_array 00000000 08001fb8 08001fb8 00020068 2**0 CONTENTS, ALLOC, LOAD, DATA 6 .init_array 00000004 08001fb8 08001fb8 00011fb8 2**2 CONTENTS, ALLOC, LOAD, DATA 7 .fini_array 00000004 08001fbc 08001fbc 00011fbc 2**2 CONTENTS, ALLOC, LOAD, DATA 8 .data 00000068 20000000 08001fc0 00020000 2**2 CONTENTS, ALLOC, LOAD, DATA 9 .bss 00000038 20000068 08002028 00020068 2**2 ALLOC 10 ._user_heap_stack 00000600 200000a0 08002028 000200a0 2**0 ALLOC 11 .ARM.attributes 00000030 00000000 00000000 00020068 2**0 CONTENTS, READONLY 12 .debug_info 000038f2 00000000 00000000 00020098 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 13 .debug_abbrev 00000b62 00000000 00000000 0002398a 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 14 .debug_aranges 000001e8 00000000 00000000 000244f0 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS 15 .debug_ranges 00000180 00000000 00000000 000246d8 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS 16 .debug_macro 00003912 00000000 00000000 00024858 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 17 .debug_line 00002793 00000000 00000000 0002816a 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 18 .debug_str 0000ab69 00000000 00000000 0002a8fd 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 19 .comment 00000053 00000000 00000000 00035466 2**0 CONTENTS, READONLY 20 .debug_frame 00000f2c 00000000 00000000 000354bc 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS Disassembly of section .text: 080001d0 <__do_global_dtors_aux>: 80001d0: b510 push {r4, lr} 80001d2: 4c05 ldr r4, [pc, #20] ; (80001e8 <__do_global_dtors_aux+0x18>) 80001d4: 7823 ldrb r3, [r4, #0] 80001d6: b933 cbnz r3, 80001e6 <__do_global_dtors_aux+0x16> 80001d8: 4b04 ldr r3, [pc, #16] ; (80001ec <__do_global_dtors_aux+0x1c>) 80001da: b113 cbz r3, 80001e2 <__do_global_dtors_aux+0x12> 80001dc: 4804 ldr r0, [pc, #16] ; (80001f0 <__do_global_dtors_aux+0x20>) 80001de: f3af 8000 nop.w 80001e2: 2301 movs r3, #1 80001e4: 7023 strb r3, [r4, #0] 80001e6: bd10 pop {r4, pc} 80001e8: 20000068 .word 0x20000068 80001ec: 00000000 .word 0x00000000 80001f0: 08001d74 .word 0x08001d74 080001f4 : 80001f4: b508 push {r3, lr} 80001f6: 4b03 ldr r3, [pc, #12] ; (8000204 ) 80001f8: b11b cbz r3, 8000202 80001fa: 4903 ldr r1, [pc, #12] ; (8000208 ) 80001fc: 4803 ldr r0, [pc, #12] ; (800020c ) 80001fe: f3af 8000 nop.w 8000202: bd08 pop {r3, pc} 8000204: 00000000 .word 0x00000000 8000208: 2000006c .word 0x2000006c 800020c: 08001d74 .word 0x08001d74 08000210 : 8000210: f001 01ff and.w r1, r1, #255 ; 0xff 8000214: 2a10 cmp r2, #16 8000216: db2b blt.n 8000270 8000218: f010 0f07 tst.w r0, #7 800021c: d008 beq.n 8000230 800021e: f810 3b01 ldrb.w r3, [r0], #1 8000222: 3a01 subs r2, #1 8000224: 428b cmp r3, r1 8000226: d02d beq.n 8000284 8000228: f010 0f07 tst.w r0, #7 800022c: b342 cbz r2, 8000280 800022e: d1f6 bne.n 800021e 8000230: b4f0 push {r4, r5, r6, r7} 8000232: ea41 2101 orr.w r1, r1, r1, lsl #8 8000236: ea41 4101 orr.w r1, r1, r1, lsl #16 800023a: f022 0407 bic.w r4, r2, #7 800023e: f07f 0700 mvns.w r7, #0 8000242: 2300 movs r3, #0 8000244: e8f0 5602 ldrd r5, r6, [r0], #8 8000248: 3c08 subs r4, #8 800024a: ea85 0501 eor.w r5, r5, r1 800024e: ea86 0601 eor.w r6, r6, r1 8000252: fa85 f547 uadd8 r5, r5, r7 8000256: faa3 f587 sel r5, r3, r7 800025a: fa86 f647 uadd8 r6, r6, r7 800025e: faa5 f687 sel r6, r5, r7 8000262: b98e cbnz r6, 8000288 8000264: d1ee bne.n 8000244 8000266: bcf0 pop {r4, r5, r6, r7} 8000268: f001 01ff and.w r1, r1, #255 ; 0xff 800026c: f002 0207 and.w r2, r2, #7 8000270: b132 cbz r2, 8000280 8000272: f810 3b01 ldrb.w r3, [r0], #1 8000276: 3a01 subs r2, #1 8000278: ea83 0301 eor.w r3, r3, r1 800027c: b113 cbz r3, 8000284 800027e: d1f8 bne.n 8000272 8000280: 2000 movs r0, #0 8000282: 4770 bx lr 8000284: 3801 subs r0, #1 8000286: 4770 bx lr 8000288: 2d00 cmp r5, #0 800028a: bf06 itte eq 800028c: 4635 moveq r5, r6 800028e: 3803 subeq r0, #3 8000290: 3807 subne r0, #7 8000292: f015 0f01 tst.w r5, #1 8000296: d107 bne.n 80002a8 8000298: 3001 adds r0, #1 800029a: f415 7f80 tst.w r5, #256 ; 0x100 800029e: bf02 ittt eq 80002a0: 3001 addeq r0, #1 80002a2: f415 3fc0 tsteq.w r5, #98304 ; 0x18000 80002a6: 3001 addeq r0, #1 80002a8: bcf0 pop {r4, r5, r6, r7} 80002aa: 3801 subs r0, #1 80002ac: 4770 bx lr 80002ae: bf00 nop 080002b0 : */ #include #include "delay.h" //include declaration header file void delay_1ms(uint32_t n){ 80002b0: b480 push {r7} 80002b2: b085 sub sp, #20 80002b4: af00 add r7, sp, #0 80002b6: 6078 str r0, [r7, #4] // 1ms = 16,000 ticks for (int i = n ; i > 0 ; i--) { 80002b8: 687b ldr r3, [r7, #4] 80002ba: 60fb str r3, [r7, #12] 80002bc: e01e b.n 80002fc // Clear value register *STK_VAL = 0x0000; 80002be: 4b14 ldr r3, [pc, #80] ; (8000310 ) 80002c0: 2200 movs r2, #0 80002c2: 601a str r2, [r3, #0] // Store 16,000 in STK_LOAD *STK_LOAD = 16000; 80002c4: 4b13 ldr r3, [pc, #76] ; (8000314 ) 80002c6: f44f 527a mov.w r2, #16000 ; 0x3e80 80002ca: 601a str r2, [r3, #0] // Enable clock, no prescaler, no interrupt *STK_CTRL |= CLKSOURCE; 80002cc: 4b12 ldr r3, [pc, #72] ; (8000318 ) 80002ce: 681b ldr r3, [r3, #0] 80002d0: 4a11 ldr r2, [pc, #68] ; (8000318 ) 80002d2: f043 0304 orr.w r3, r3, #4 80002d6: 6013 str r3, [r2, #0] *STK_CTRL |= EN; 80002d8: 4b0f ldr r3, [pc, #60] ; (8000318 ) 80002da: 681b ldr r3, [r3, #0] 80002dc: 4a0e ldr r2, [pc, #56] ; (8000318 ) 80002de: f043 0301 orr.w r3, r3, #1 80002e2: 6013 str r3, [r2, #0] // Loop n times: Wait for countflag high int flag; do { flag = ((*STK_CTRL & (1<<16))>>16); 80002e4: 4b0c ldr r3, [pc, #48] ; (8000318 ) 80002e6: 681b ldr r3, [r3, #0] 80002e8: 0c1b lsrs r3, r3, #16 80002ea: f003 0301 and.w r3, r3, #1 80002ee: 60bb str r3, [r7, #8] } while (flag != 1); 80002f0: 68bb ldr r3, [r7, #8] 80002f2: 2b01 cmp r3, #1 80002f4: d1f6 bne.n 80002e4 for (int i = n ; i > 0 ; i--) { 80002f6: 68fb ldr r3, [r7, #12] 80002f8: 3b01 subs r3, #1 80002fa: 60fb str r3, [r7, #12] 80002fc: 68fb ldr r3, [r7, #12] 80002fe: 2b00 cmp r3, #0 8000300: dcdd bgt.n 80002be } } 8000302: bf00 nop 8000304: bf00 nop 8000306: 3714 adds r7, #20 8000308: 46bd mov sp, r7 800030a: f85d 7b04 ldr.w r7, [sp], #4 800030e: 4770 bx lr 8000310: e000e018 .word 0xe000e018 8000314: e000e014 .word 0xe000e014 8000318: e000e010 .word 0xe000e010 0800031c : #include #include int ledSpeed = 5; void led_init(){ 800031c: b480 push {r7} 800031e: af00 add r7, sp, #0 // Initialize corresponding RCC and GPIO registers *RCC_AHB1ENR |= (1<) 8000322: 681b ldr r3, [r3, #0] 8000324: 4a12 ldr r2, [pc, #72] ; (8000370 ) 8000326: f043 0302 orr.w r3, r3, #2 800032a: 6013 str r3, [r2, #0] *GPIOB_MODER &= ~(0x3FFF<<10); 800032c: 4b11 ldr r3, [pc, #68] ; (8000374 ) 800032e: 681b ldr r3, [r3, #0] 8000330: 4a10 ldr r2, [pc, #64] ; (8000374 ) 8000332: f423 037f bic.w r3, r3, #16711680 ; 0xff0000 8000336: f423 437c bic.w r3, r3, #64512 ; 0xfc00 800033a: 6013 str r3, [r2, #0] *GPIOB_MODER |= (0x555<<10); 800033c: 4b0d ldr r3, [pc, #52] ; (8000374 ) 800033e: 681b ldr r3, [r3, #0] 8000340: 4a0c ldr r2, [pc, #48] ; (8000374 ) 8000342: f443 13aa orr.w r3, r3, #1392640 ; 0x154000 8000346: f443 53a0 orr.w r3, r3, #5120 ; 0x1400 800034a: 6013 str r3, [r2, #0] *GPIOB_MODER &= ~(0xFF<<24); 800034c: 4b09 ldr r3, [pc, #36] ; (8000374 ) 800034e: 681b ldr r3, [r3, #0] 8000350: 4a08 ldr r2, [pc, #32] ; (8000374 ) 8000352: f023 437f bic.w r3, r3, #4278190080 ; 0xff000000 8000356: 6013 str r3, [r2, #0] *GPIOB_MODER |= (0x55<<24); 8000358: 4b06 ldr r3, [pc, #24] ; (8000374 ) 800035a: 681b ldr r3, [r3, #0] 800035c: 4a05 ldr r2, [pc, #20] ; (8000374 ) 800035e: f043 43aa orr.w r3, r3, #1426063360 ; 0x55000000 8000362: 6013 str r3, [r2, #0] } 8000364: bf00 nop 8000366: 46bd mov sp, r7 8000368: f85d 7b04 ldr.w r7, [sp], #4 800036c: 4770 bx lr 800036e: bf00 nop 8000370: 40023830 .word 0x40023830 8000374: 40020400 .word 0x40020400 08000378 : void led_allOn(){ 8000378: b480 push {r7} 800037a: af00 add r7, sp, #0 // Set all LED Bits *GPIOB_ODR |= ALL_LEDS; 800037c: 4b06 ldr r3, [pc, #24] ; (8000398 ) 800037e: 681b ldr r3, [r3, #0] 8000380: 4a05 ldr r2, [pc, #20] ; (8000398 ) 8000382: f443 4377 orr.w r3, r3, #63232 ; 0xf700 8000386: f043 03e0 orr.w r3, r3, #224 ; 0xe0 800038a: 6013 str r3, [r2, #0] } 800038c: bf00 nop 800038e: 46bd mov sp, r7 8000390: f85d 7b04 ldr.w r7, [sp], #4 8000394: 4770 bx lr 8000396: bf00 nop 8000398: 40020414 .word 0x40020414 0800039c : void led_allOff(){ 800039c: b480 push {r7} 800039e: af00 add r7, sp, #0 // Reset all LED bits *GPIOB_ODR &= ~(ALL_LEDS); 80003a0: 4b06 ldr r3, [pc, #24] ; (80003bc ) 80003a2: 681b ldr r3, [r3, #0] 80003a4: 4a05 ldr r2, [pc, #20] ; (80003bc ) 80003a6: f423 4377 bic.w r3, r3, #63232 ; 0xf700 80003aa: f023 03e0 bic.w r3, r3, #224 ; 0xe0 80003ae: 6013 str r3, [r2, #0] } 80003b0: bf00 nop 80003b2: 46bd mov sp, r7 80003b4: f85d 7b04 ldr.w r7, [sp], #4 80003b8: 4770 bx lr 80003ba: bf00 nop 80003bc: 40020414 .word 0x40020414 080003c0 : void led_on(uint8_t ledIndex){ 80003c0: b580 push {r7, lr} 80003c2: b082 sub sp, #8 80003c4: af00 add r7, sp, #0 80003c6: 4603 mov r3, r0 80003c8: 71fb strb r3, [r7, #7] // Set individual LED based on passed in index switch (ledIndex) { 80003ca: 79fb ldrb r3, [r7, #7] 80003cc: 2b09 cmp r3, #9 80003ce: d846 bhi.n 800045e 80003d0: a201 add r2, pc, #4 ; (adr r2, 80003d8 ) 80003d2: f852 f023 ldr.w pc, [r2, r3, lsl #2] 80003d6: bf00 nop 80003d8: 08000401 .word 0x08000401 80003dc: 08000409 .word 0x08000409 80003e0: 08000411 .word 0x08000411 80003e4: 08000419 .word 0x08000419 80003e8: 08000423 .word 0x08000423 80003ec: 0800042d .word 0x0800042d 80003f0: 08000437 .word 0x08000437 80003f4: 08000441 .word 0x08000441 80003f8: 0800044b .word 0x0800044b 80003fc: 08000455 .word 0x08000455 case 0: *GPIOB_BSRR = (1<<5); 8000400: 4b1b ldr r3, [pc, #108] ; (8000470 ) 8000402: 2220 movs r2, #32 8000404: 601a str r2, [r3, #0] break; 8000406: e02e b.n 8000466 case 1: *GPIOB_BSRR = (1<<6); 8000408: 4b19 ldr r3, [pc, #100] ; (8000470 ) 800040a: 2240 movs r2, #64 ; 0x40 800040c: 601a str r2, [r3, #0] break; 800040e: e02a b.n 8000466 case 2: *GPIOB_BSRR = (1<<7); 8000410: 4b17 ldr r3, [pc, #92] ; (8000470 ) 8000412: 2280 movs r2, #128 ; 0x80 8000414: 601a str r2, [r3, #0] break; 8000416: e026 b.n 8000466 case 3: *GPIOB_BSRR = (1<<8); 8000418: 4b15 ldr r3, [pc, #84] ; (8000470 ) 800041a: f44f 7280 mov.w r2, #256 ; 0x100 800041e: 601a str r2, [r3, #0] break; 8000420: e021 b.n 8000466 case 4: *GPIOB_BSRR = (1<<9); 8000422: 4b13 ldr r3, [pc, #76] ; (8000470 ) 8000424: f44f 7200 mov.w r2, #512 ; 0x200 8000428: 601a str r2, [r3, #0] break; 800042a: e01c b.n 8000466 case 5: *GPIOB_BSRR = (1<<10); 800042c: 4b10 ldr r3, [pc, #64] ; (8000470 ) 800042e: f44f 6280 mov.w r2, #1024 ; 0x400 8000432: 601a str r2, [r3, #0] break; 8000434: e017 b.n 8000466 case 6: *GPIOB_BSRR = (1<<12); 8000436: 4b0e ldr r3, [pc, #56] ; (8000470 ) 8000438: f44f 5280 mov.w r2, #4096 ; 0x1000 800043c: 601a str r2, [r3, #0] break; 800043e: e012 b.n 8000466 case 7: *GPIOB_BSRR = (1<<13); 8000440: 4b0b ldr r3, [pc, #44] ; (8000470 ) 8000442: f44f 5200 mov.w r2, #8192 ; 0x2000 8000446: 601a str r2, [r3, #0] break; 8000448: e00d b.n 8000466 case 8: *GPIOB_BSRR = (1<<14); 800044a: 4b09 ldr r3, [pc, #36] ; (8000470 ) 800044c: f44f 4280 mov.w r2, #16384 ; 0x4000 8000450: 601a str r2, [r3, #0] break; 8000452: e008 b.n 8000466 case 9: *GPIOB_BSRR = (1<<15); 8000454: 4b06 ldr r3, [pc, #24] ; (8000470 ) 8000456: f44f 4200 mov.w r2, #32768 ; 0x8000 800045a: 601a str r2, [r3, #0] break; 800045c: e003 b.n 8000466 default: printf("LED index out of range\n\r"); 800045e: 4805 ldr r0, [pc, #20] ; (8000474 ) 8000460: f000 fb34 bl 8000acc break; 8000464: bf00 nop } } 8000466: bf00 nop 8000468: 3708 adds r7, #8 800046a: 46bd mov sp, r7 800046c: bd80 pop {r7, pc} 800046e: bf00 nop 8000470: 40020418 .word 0x40020418 8000474: 08001d8c .word 0x08001d8c 08000478 : void led_off(uint8_t ledIndex){ 8000478: b580 push {r7, lr} 800047a: b082 sub sp, #8 800047c: af00 add r7, sp, #0 800047e: 4603 mov r3, r0 8000480: 71fb strb r3, [r7, #7] // Reset individual LED based on passed in index if (ledIndex < 6) { 8000482: 79fb ldrb r3, [r7, #7] 8000484: 2b05 cmp r3, #5 8000486: d806 bhi.n 8000496 *GPIOB_BSRR = (1<<(21+ledIndex)); 8000488: 79fb ldrb r3, [r7, #7] 800048a: 3315 adds r3, #21 800048c: 2201 movs r2, #1 800048e: 409a lsls r2, r3 8000490: 4b09 ldr r3, [pc, #36] ; (80004b8 ) 8000492: 601a str r2, [r3, #0] // Add pin offset to index *GPIOB_BSRR = (1<<(22+ledIndex)); } else { printf("LED index out of range\n\r"); } } 8000494: e00c b.n 80004b0 } else if (ledIndex >= 6) { 8000496: 79fb ldrb r3, [r7, #7] 8000498: 2b05 cmp r3, #5 800049a: d906 bls.n 80004aa *GPIOB_BSRR = (1<<(22+ledIndex)); 800049c: 79fb ldrb r3, [r7, #7] 800049e: 3316 adds r3, #22 80004a0: 2201 movs r2, #1 80004a2: 409a lsls r2, r3 80004a4: 4b04 ldr r3, [pc, #16] ; (80004b8 ) 80004a6: 601a str r2, [r3, #0] } 80004a8: e002 b.n 80004b0 printf("LED index out of range\n\r"); 80004aa: 4804 ldr r0, [pc, #16] ; (80004bc ) 80004ac: f000 fb0e bl 8000acc } 80004b0: bf00 nop 80004b2: 3708 adds r7, #8 80004b4: 46bd mov sp, r7 80004b6: bd80 pop {r7, pc} 80004b8: 40020418 .word 0x40020418 80004bc: 08001d8c .word 0x08001d8c 080004c0 : void led_scan(){ 80004c0: b580 push {r7, lr} 80004c2: b082 sub sp, #8 80004c4: af00 add r7, sp, #0 led_allOff(); 80004c6: f7ff ff69 bl 800039c // Right to left each LED for (int i = 0; i <= 9 ; i++) { 80004ca: 2300 movs r3, #0 80004cc: 607b str r3, [r7, #4] 80004ce: e01a b.n 8000506 // Scaled Delay delay_1ms(50+(ledSpeed*50)); 80004d0: 4b22 ldr r3, [pc, #136] ; (800055c ) 80004d2: 681b ldr r3, [r3, #0] 80004d4: 3301 adds r3, #1 80004d6: 2232 movs r2, #50 ; 0x32 80004d8: fb02 f303 mul.w r3, r2, r3 80004dc: 4618 mov r0, r3 80004de: f7ff fee7 bl 80002b0 if(i != 0){ 80004e2: 687b ldr r3, [r7, #4] 80004e4: 2b00 cmp r3, #0 80004e6: d006 beq.n 80004f6 led_off(i-1); 80004e8: 687b ldr r3, [r7, #4] 80004ea: b2db uxtb r3, r3 80004ec: 3b01 subs r3, #1 80004ee: b2db uxtb r3, r3 80004f0: 4618 mov r0, r3 80004f2: f7ff ffc1 bl 8000478 } led_on(i); 80004f6: 687b ldr r3, [r7, #4] 80004f8: b2db uxtb r3, r3 80004fa: 4618 mov r0, r3 80004fc: f7ff ff60 bl 80003c0 for (int i = 0; i <= 9 ; i++) { 8000500: 687b ldr r3, [r7, #4] 8000502: 3301 adds r3, #1 8000504: 607b str r3, [r7, #4] 8000506: 687b ldr r3, [r7, #4] 8000508: 2b09 cmp r3, #9 800050a: dde1 ble.n 80004d0 } // Left to right each LED for (int i = 9; i >= 0; i--) { 800050c: 2309 movs r3, #9 800050e: 603b str r3, [r7, #0] 8000510: e01a b.n 8000548 if(i != 9){ 8000512: 683b ldr r3, [r7, #0] 8000514: 2b09 cmp r3, #9 8000516: d006 beq.n 8000526 led_off(i+1); 8000518: 683b ldr r3, [r7, #0] 800051a: b2db uxtb r3, r3 800051c: 3301 adds r3, #1 800051e: b2db uxtb r3, r3 8000520: 4618 mov r0, r3 8000522: f7ff ffa9 bl 8000478 } led_on(i); 8000526: 683b ldr r3, [r7, #0] 8000528: b2db uxtb r3, r3 800052a: 4618 mov r0, r3 800052c: f7ff ff48 bl 80003c0 // Scaled Delay delay_1ms(50+(ledSpeed*50)); 8000530: 4b0a ldr r3, [pc, #40] ; (800055c ) 8000532: 681b ldr r3, [r3, #0] 8000534: 3301 adds r3, #1 8000536: 2232 movs r2, #50 ; 0x32 8000538: fb02 f303 mul.w r3, r2, r3 800053c: 4618 mov r0, r3 800053e: f7ff feb7 bl 80002b0 for (int i = 9; i >= 0; i--) { 8000542: 683b ldr r3, [r7, #0] 8000544: 3b01 subs r3, #1 8000546: 603b str r3, [r7, #0] 8000548: 683b ldr r3, [r7, #0] 800054a: 2b00 cmp r3, #0 800054c: dae1 bge.n 8000512 } led_off(0); 800054e: 2000 movs r0, #0 8000550: f7ff ff92 bl 8000478 } 8000554: bf00 nop 8000556: 3708 adds r7, #8 8000558: 46bd mov sp, r7 800055a: bd80 pop {r7, pc} 800055c: 20000000 .word 0x20000000 08000560 : void led_flash(){ 8000560: b580 push {r7, lr} 8000562: b082 sub sp, #8 8000564: af00 add r7, sp, #0 // Flash LED on and off 10 times at a speed between 0-1 seconds for (int i = 0; i < 10; i++) { 8000566: 2300 movs r3, #0 8000568: 607b str r3, [r7, #4] 800056a: e018 b.n 800059e led_allOn(); 800056c: f7ff ff04 bl 8000378 delay_1ms(100+(ledSpeed*100)); 8000570: 4b0f ldr r3, [pc, #60] ; (80005b0 ) 8000572: 681b ldr r3, [r3, #0] 8000574: 3301 adds r3, #1 8000576: 2264 movs r2, #100 ; 0x64 8000578: fb02 f303 mul.w r3, r2, r3 800057c: 4618 mov r0, r3 800057e: f7ff fe97 bl 80002b0 led_allOff(); 8000582: f7ff ff0b bl 800039c delay_1ms(100+(ledSpeed*100)); 8000586: 4b0a ldr r3, [pc, #40] ; (80005b0 ) 8000588: 681b ldr r3, [r3, #0] 800058a: 3301 adds r3, #1 800058c: 2264 movs r2, #100 ; 0x64 800058e: fb02 f303 mul.w r3, r2, r3 8000592: 4618 mov r0, r3 8000594: f7ff fe8c bl 80002b0 for (int i = 0; i < 10; i++) { 8000598: 687b ldr r3, [r7, #4] 800059a: 3301 adds r3, #1 800059c: 607b str r3, [r7, #4] 800059e: 687b ldr r3, [r7, #4] 80005a0: 2b09 cmp r3, #9 80005a2: dde3 ble.n 800056c } } 80005a4: bf00 nop 80005a6: bf00 nop 80005a8: 3708 adds r7, #8 80005aa: 46bd mov sp, r7 80005ac: bd80 pop {r7, pc} 80005ae: bf00 nop 80005b0: 20000000 .word 0x20000000 080005b4 : void led_setSpeed(uint8_t speed){ ledSpeed = speed; } void led_incSpeed(){ 80005b4: b580 push {r7, lr} 80005b6: af00 add r7, sp, #0 if (ledSpeed == 0){ 80005b8: 4b07 ldr r3, [pc, #28] ; (80005d8 ) 80005ba: 681b ldr r3, [r3, #0] 80005bc: 2b00 cmp r3, #0 80005be: d103 bne.n 80005c8 printf("Speed too fast\n\r"); 80005c0: 4806 ldr r0, [pc, #24] ; (80005dc ) 80005c2: f000 fa83 bl 8000acc } else { ledSpeed--; } } 80005c6: e004 b.n 80005d2 ledSpeed--; 80005c8: 4b03 ldr r3, [pc, #12] ; (80005d8 ) 80005ca: 681b ldr r3, [r3, #0] 80005cc: 3b01 subs r3, #1 80005ce: 4a02 ldr r2, [pc, #8] ; (80005d8 ) 80005d0: 6013 str r3, [r2, #0] } 80005d2: bf00 nop 80005d4: bd80 pop {r7, pc} 80005d6: bf00 nop 80005d8: 20000000 .word 0x20000000 80005dc: 08001da8 .word 0x08001da8 080005e0 : void led_decSpeed(){ 80005e0: b580 push {r7, lr} 80005e2: af00 add r7, sp, #0 if (ledSpeed == 9){ 80005e4: 4b07 ldr r3, [pc, #28] ; (8000604 ) 80005e6: 681b ldr r3, [r3, #0] 80005e8: 2b09 cmp r3, #9 80005ea: d103 bne.n 80005f4 printf("Speed too slow\n\r"); 80005ec: 4806 ldr r0, [pc, #24] ; (8000608 ) 80005ee: f000 fa6d bl 8000acc } else { ledSpeed++; } } 80005f2: e004 b.n 80005fe ledSpeed++; 80005f4: 4b03 ldr r3, [pc, #12] ; (8000604 ) 80005f6: 681b ldr r3, [r3, #0] 80005f8: 3301 adds r3, #1 80005fa: 4a02 ldr r2, [pc, #8] ; (8000604 ) 80005fc: 6013 str r3, [r2, #0] } 80005fe: bf00 nop 8000600: bd80 pop {r7, pc} 8000602: bf00 nop 8000604: 20000000 .word 0x20000000 8000608: 08001dbc .word 0x08001dbc 0800060c : uint8_t getCurrentSpeed() { 800060c: b480 push {r7} 800060e: af00 add r7, sp, #0 return ledSpeed; 8000610: 4b03 ldr r3, [pc, #12] ; (8000620 ) 8000612: 681b ldr r3, [r3, #0] 8000614: b2db uxtb r3, r3 } 8000616: 4618 mov r0, r3 8000618: 46bd mov sp, r7 800061a: f85d 7b04 ldr.w r7, [sp], #4 800061e: 4770 bx lr 8000620: 20000000 .word 0x20000000 08000624 : #include "led.h" #define F_CPU 16000000UL #define ARSIZE 10 void printHelp() { 8000624: b580 push {r7, lr} 8000626: af00 add r7, sp, #0 printf("*Commands*\n\r"); 8000628: 480e ldr r0, [pc, #56] ; (8000664 ) 800062a: f000 fa4f bl 8000acc printf("'f' - Flash Lights 10 Times\n\r"); 800062e: 480e ldr r0, [pc, #56] ; (8000668 ) 8000630: f000 fa4c bl 8000acc printf("'s' - Scan Lights (Once back and forth)\n\r"); 8000634: 480d ldr r0, [pc, #52] ; (800066c ) 8000636: f000 fa49 bl 8000acc printf("'i' - Scan Lights (Infinitely)\n\r"); 800063a: 480d ldr r0, [pc, #52] ; (8000670 ) 800063c: f000 fa46 bl 8000acc printf("'p' - Print Current Speed Interval (0-9)\n\r"); 8000640: 480c ldr r0, [pc, #48] ; (8000674 ) 8000642: f000 fa43 bl 8000acc printf("'+' - Increase Speed\n\r"); 8000646: 480c ldr r0, [pc, #48] ; (8000678 ) 8000648: f000 fa40 bl 8000acc printf("'-' - Decrease Speed\n\r"); 800064c: 480b ldr r0, [pc, #44] ; (800067c ) 800064e: f000 fa3d bl 8000acc printf("'x' - Turn Off Lights\n\r"); 8000652: 480b ldr r0, [pc, #44] ; (8000680 ) 8000654: f000 fa3a bl 8000acc printf("'o' - Turn On Lights\n\r"); 8000658: 480a ldr r0, [pc, #40] ; (8000684 ) 800065a: f000 fa37 bl 8000acc } 800065e: bf00 nop 8000660: bd80 pop {r7, pc} 8000662: bf00 nop 8000664: 08001dd0 .word 0x08001dd0 8000668: 08001de0 .word 0x08001de0 800066c: 08001e00 .word 0x08001e00 8000670: 08001e2c .word 0x08001e2c 8000674: 08001e50 .word 0x08001e50 8000678: 08001e7c .word 0x08001e7c 800067c: 08001e94 .word 0x08001e94 8000680: 08001eac .word 0x08001eac 8000684: 08001ec4 .word 0x08001ec4 08000688
: // main int main(){ 8000688: b580 push {r7, lr} 800068a: b082 sub sp, #8 800068c: af00 add r7, sp, #0 init_usart2(19200,F_CPU); 800068e: 4937 ldr r1, [pc, #220] ; (800076c ) 8000690: f44f 4096 mov.w r0, #19200 ; 0x4b00 8000694: f000 f954 bl 8000940 // Initialize LEDs led_init(); 8000698: f7ff fe40 bl 800031c char selection, dummy; // Selection Prompt printf("Choose an option ('h' for help)\n\r"); 800069c: 4834 ldr r0, [pc, #208] ; (8000770 ) 800069e: f000 fa15 bl 8000acc while (1) { selection = getchar(); 80006a2: f000 f9d5 bl 8000a50 80006a6: 4603 mov r3, r0 80006a8: 71fb strb r3, [r7, #7] switch (selection) { 80006aa: 79fb ldrb r3, [r7, #7] 80006ac: 2b78 cmp r3, #120 ; 0x78 80006ae: dc53 bgt.n 8000758 80006b0: 2b66 cmp r3, #102 ; 0x66 80006b2: da04 bge.n 80006be 80006b4: 2b2b cmp r3, #43 ; 0x2b 80006b6: d049 beq.n 800074c 80006b8: 2b2d cmp r3, #45 ; 0x2d 80006ba: d04a beq.n 8000752 80006bc: e04c b.n 8000758 80006be: 3b66 subs r3, #102 ; 0x66 80006c0: 2b12 cmp r3, #18 80006c2: d849 bhi.n 8000758 80006c4: a201 add r2, pc, #4 ; (adr r2, 80006cc ) 80006c6: f852 f023 ldr.w pc, [r2, r3, lsl #2] 80006ca: bf00 nop 80006cc: 0800072b .word 0x0800072b 80006d0: 08000759 .word 0x08000759 80006d4: 08000725 .word 0x08000725 80006d8: 08000737 .word 0x08000737 80006dc: 08000759 .word 0x08000759 80006e0: 08000759 .word 0x08000759 80006e4: 08000759 .word 0x08000759 80006e8: 08000759 .word 0x08000759 80006ec: 08000759 .word 0x08000759 80006f0: 08000719 .word 0x08000719 80006f4: 0800073d .word 0x0800073d 80006f8: 08000759 .word 0x08000759 80006fc: 08000759 .word 0x08000759 8000700: 08000731 .word 0x08000731 8000704: 08000759 .word 0x08000759 8000708: 08000759 .word 0x08000759 800070c: 08000759 .word 0x08000759 8000710: 08000759 .word 0x08000759 8000714: 0800071f .word 0x0800071f case 'o': led_allOn(); 8000718: f7ff fe2e bl 8000378 break; 800071c: e020 b.n 8000760 case 'x': led_allOff(); 800071e: f7ff fe3d bl 800039c break; 8000722: e01d b.n 8000760 case 'h': printHelp(); 8000724: f7ff ff7e bl 8000624 break; 8000728: e01a b.n 8000760 case 'f': led_flash(); 800072a: f7ff ff19 bl 8000560 break; 800072e: e017 b.n 8000760 case 's': led_scan(); 8000730: f7ff fec6 bl 80004c0 break; 8000734: e014 b.n 8000760 case 'i': while(1){ led_scan(); 8000736: f7ff fec3 bl 80004c0 800073a: e7fc b.n 8000736 } break; case 'p': printf("Current Interval: %d\n\r", getCurrentSpeed()); 800073c: f7ff ff66 bl 800060c 8000740: 4603 mov r3, r0 8000742: 4619 mov r1, r3 8000744: 480b ldr r0, [pc, #44] ; (8000774 ) 8000746: f000 f9c1 bl 8000acc break; 800074a: e009 b.n 8000760 case '+': led_incSpeed(); 800074c: f7ff ff32 bl 80005b4 break; 8000750: e006 b.n 8000760 case '-': led_decSpeed(); 8000752: f7ff ff45 bl 80005e0 break; 8000756: e003 b.n 8000760 default: printf("????\n\r"); 8000758: 4807 ldr r0, [pc, #28] ; (8000778 ) 800075a: f000 f9b7 bl 8000acc break; 800075e: bf00 nop } dummy = getchar(); 8000760: f000 f976 bl 8000a50 8000764: 4603 mov r3, r0 8000766: 71bb strb r3, [r7, #6] selection = getchar(); 8000768: e79b b.n 80006a2 800076a: bf00 nop 800076c: 00f42400 .word 0x00f42400 8000770: 08001edc .word 0x08001edc 8000774: 08001f00 .word 0x08001f00 8000778: 08001f18 .word 0x08001f18 0800077c <_close>: } return len; } int _close(int file) { 800077c: b480 push {r7} 800077e: b083 sub sp, #12 8000780: af00 add r7, sp, #0 8000782: 6078 str r0, [r7, #4] return -1; 8000784: f04f 33ff mov.w r3, #4294967295 } 8000788: 4618 mov r0, r3 800078a: 370c adds r7, #12 800078c: 46bd mov sp, r7 800078e: f85d 7b04 ldr.w r7, [sp], #4 8000792: 4770 bx lr 08000794 <_fstat>: int _fstat(int file, struct stat *st) { 8000794: b480 push {r7} 8000796: b083 sub sp, #12 8000798: af00 add r7, sp, #0 800079a: 6078 str r0, [r7, #4] 800079c: 6039 str r1, [r7, #0] st->st_mode = S_IFCHR; 800079e: 683b ldr r3, [r7, #0] 80007a0: f44f 5200 mov.w r2, #8192 ; 0x2000 80007a4: 605a str r2, [r3, #4] return 0; 80007a6: 2300 movs r3, #0 } 80007a8: 4618 mov r0, r3 80007aa: 370c adds r7, #12 80007ac: 46bd mov sp, r7 80007ae: f85d 7b04 ldr.w r7, [sp], #4 80007b2: 4770 bx lr 080007b4 <_isatty>: int _isatty(int file) { 80007b4: b480 push {r7} 80007b6: b083 sub sp, #12 80007b8: af00 add r7, sp, #0 80007ba: 6078 str r0, [r7, #4] return 1; 80007bc: 2301 movs r3, #1 } 80007be: 4618 mov r0, r3 80007c0: 370c adds r7, #12 80007c2: 46bd mov sp, r7 80007c4: f85d 7b04 ldr.w r7, [sp], #4 80007c8: 4770 bx lr 080007ca <_lseek>: int _lseek(int file, int ptr, int dir) { 80007ca: b480 push {r7} 80007cc: b085 sub sp, #20 80007ce: af00 add r7, sp, #0 80007d0: 60f8 str r0, [r7, #12] 80007d2: 60b9 str r1, [r7, #8] 80007d4: 607a str r2, [r7, #4] return 0; 80007d6: 2300 movs r3, #0 } 80007d8: 4618 mov r0, r3 80007da: 3714 adds r7, #20 80007dc: 46bd mov sp, r7 80007de: f85d 7b04 ldr.w r7, [sp], #4 80007e2: 4770 bx lr 080007e4 <_sbrk>: /** _sbrk Increase program data space. Malloc and related functions depend on this **/ caddr_t _sbrk(int incr) { 80007e4: b580 push {r7, lr} 80007e6: b084 sub sp, #16 80007e8: af00 add r7, sp, #0 80007ea: 6078 str r0, [r7, #4] extern char end asm("end"); static char *heap_end; char *prev_heap_end; if (heap_end == 0) 80007ec: 4b11 ldr r3, [pc, #68] ; (8000834 <_sbrk+0x50>) 80007ee: 681b ldr r3, [r3, #0] 80007f0: 2b00 cmp r3, #0 80007f2: d102 bne.n 80007fa <_sbrk+0x16> heap_end = &end; 80007f4: 4b0f ldr r3, [pc, #60] ; (8000834 <_sbrk+0x50>) 80007f6: 4a10 ldr r2, [pc, #64] ; (8000838 <_sbrk+0x54>) 80007f8: 601a str r2, [r3, #0] prev_heap_end = heap_end; 80007fa: 4b0e ldr r3, [pc, #56] ; (8000834 <_sbrk+0x50>) 80007fc: 681b ldr r3, [r3, #0] 80007fe: 60fb str r3, [r7, #12] if (heap_end + incr > stack_ptr) 8000800: 4b0c ldr r3, [pc, #48] ; (8000834 <_sbrk+0x50>) 8000802: 681a ldr r2, [r3, #0] 8000804: 687b ldr r3, [r7, #4] 8000806: 4413 add r3, r2 8000808: 466a mov r2, sp 800080a: 4293 cmp r3, r2 800080c: d907 bls.n 800081e <_sbrk+0x3a> { errno = ENOMEM; 800080e: f000 f919 bl 8000a44 <__errno> 8000812: 4603 mov r3, r0 8000814: 220c movs r2, #12 8000816: 601a str r2, [r3, #0] return (caddr_t) -1; 8000818: f04f 33ff mov.w r3, #4294967295 800081c: e006 b.n 800082c <_sbrk+0x48> } heap_end += incr; 800081e: 4b05 ldr r3, [pc, #20] ; (8000834 <_sbrk+0x50>) 8000820: 681a ldr r2, [r3, #0] 8000822: 687b ldr r3, [r7, #4] 8000824: 4413 add r3, r2 8000826: 4a03 ldr r2, [pc, #12] ; (8000834 <_sbrk+0x50>) 8000828: 6013 str r3, [r2, #0] return (caddr_t) prev_heap_end; 800082a: 68fb ldr r3, [r7, #12] } 800082c: 4618 mov r0, r3 800082e: 3710 adds r7, #16 8000830: 46bd mov sp, r7 8000832: bd80 pop {r7, pc} 8000834: 20000084 .word 0x20000084 8000838: 200000a0 .word 0x200000a0 0800083c <_read>: // These will override _read and _write in syscalls.c, which are // prototyped as weak int _read(int file, char *ptr, int len) { 800083c: b580 push {r7, lr} 800083e: b086 sub sp, #24 8000840: af00 add r7, sp, #0 8000842: 60f8 str r0, [r7, #12] 8000844: 60b9 str r1, [r7, #8] 8000846: 607a str r2, [r7, #4] int DataIdx; // Modified the for loop in order to get the correct behavior for fgets int byteCnt = 0; 8000848: 2300 movs r3, #0 800084a: 613b str r3, [r7, #16] for (DataIdx = 0; DataIdx < len; DataIdx++) 800084c: 2300 movs r3, #0 800084e: 617b str r3, [r7, #20] 8000850: e012 b.n 8000878 <_read+0x3c> { //*ptr++ = __io_getchar(); byteCnt++; 8000852: 693b ldr r3, [r7, #16] 8000854: 3301 adds r3, #1 8000856: 613b str r3, [r7, #16] //*ptr++ = usart2_getch(); *ptr = usart2_getch(); 8000858: f000 f836 bl 80008c8 800085c: 4603 mov r3, r0 800085e: 461a mov r2, r3 8000860: 68bb ldr r3, [r7, #8] 8000862: 701a strb r2, [r3, #0] if(*ptr == '\n') break; 8000864: 68bb ldr r3, [r7, #8] 8000866: 781b ldrb r3, [r3, #0] 8000868: 2b0a cmp r3, #10 800086a: d00a beq.n 8000882 <_read+0x46> ptr++; 800086c: 68bb ldr r3, [r7, #8] 800086e: 3301 adds r3, #1 8000870: 60bb str r3, [r7, #8] for (DataIdx = 0; DataIdx < len; DataIdx++) 8000872: 697b ldr r3, [r7, #20] 8000874: 3301 adds r3, #1 8000876: 617b str r3, [r7, #20] 8000878: 697a ldr r2, [r7, #20] 800087a: 687b ldr r3, [r7, #4] 800087c: 429a cmp r2, r3 800087e: dbe8 blt.n 8000852 <_read+0x16> 8000880: e000 b.n 8000884 <_read+0x48> if(*ptr == '\n') break; 8000882: bf00 nop } //return len; return byteCnt; // Return byte count 8000884: 693b ldr r3, [r7, #16] } 8000886: 4618 mov r0, r3 8000888: 3718 adds r7, #24 800088a: 46bd mov sp, r7 800088c: bd80 pop {r7, pc} 0800088e <_write>: int _write(int file, char *ptr, int len) { 800088e: b580 push {r7, lr} 8000890: b086 sub sp, #24 8000892: af00 add r7, sp, #0 8000894: 60f8 str r0, [r7, #12] 8000896: 60b9 str r1, [r7, #8] 8000898: 607a str r2, [r7, #4] int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) 800089a: 2300 movs r3, #0 800089c: 617b str r3, [r7, #20] 800089e: e009 b.n 80008b4 <_write+0x26> { usart2_putch(*ptr++); 80008a0: 68bb ldr r3, [r7, #8] 80008a2: 1c5a adds r2, r3, #1 80008a4: 60ba str r2, [r7, #8] 80008a6: 781b ldrb r3, [r3, #0] 80008a8: 4618 mov r0, r3 80008aa: f000 f82f bl 800090c for (DataIdx = 0; DataIdx < len; DataIdx++) 80008ae: 697b ldr r3, [r7, #20] 80008b0: 3301 adds r3, #1 80008b2: 617b str r3, [r7, #20] 80008b4: 697a ldr r2, [r7, #20] 80008b6: 687b ldr r3, [r7, #4] 80008b8: 429a cmp r2, r3 80008ba: dbf1 blt.n 80008a0 <_write+0x12> } return len; 80008bc: 687b ldr r3, [r7, #4] } 80008be: 4618 mov r0, r3 80008c0: 3718 adds r7, #24 80008c2: 46bd mov sp, r7 80008c4: bd80 pop {r7, pc} ... 080008c8 : char usart2_getch(){ 80008c8: b580 push {r7, lr} 80008ca: b082 sub sp, #8 80008cc: af00 add r7, sp, #0 char c; while((*(USART_SR)&(1<) 80008d2: 681b ldr r3, [r3, #0] 80008d4: f003 0320 and.w r3, r3, #32 80008d8: 2b20 cmp r3, #32 80008da: d1f9 bne.n 80008d0 c = ((char) *USART_DR); // Read character from usart 80008dc: 4b0a ldr r3, [pc, #40] ; (8000908 ) 80008de: 681b ldr r3, [r3, #0] 80008e0: 71fb strb r3, [r7, #7] usart2_putch(c); // Echo back 80008e2: 79fb ldrb r3, [r7, #7] 80008e4: 4618 mov r0, r3 80008e6: f000 f811 bl 800090c if (c == '\r'){ // If character is CR 80008ea: 79fb ldrb r3, [r7, #7] 80008ec: 2b0d cmp r3, #13 80008ee: d104 bne.n 80008fa usart2_putch('\n'); // send it 80008f0: 200a movs r0, #10 80008f2: f000 f80b bl 800090c c = '\n'; // Return LF. fgets is terminated by LF 80008f6: 230a movs r3, #10 80008f8: 71fb strb r3, [r7, #7] } return c; 80008fa: 79fb ldrb r3, [r7, #7] } 80008fc: 4618 mov r0, r3 80008fe: 3708 adds r7, #8 8000900: 46bd mov sp, r7 8000902: bd80 pop {r7, pc} 8000904: 40004400 .word 0x40004400 8000908: 40004404 .word 0x40004404 0800090c : void usart2_putch(char c){ 800090c: b480 push {r7} 800090e: b083 sub sp, #12 8000910: af00 add r7, sp, #0 8000912: 4603 mov r3, r0 8000914: 71fb strb r3, [r7, #7] while((*(USART_SR)&(1<) 800091a: 681b ldr r3, [r3, #0] 800091c: f003 0380 and.w r3, r3, #128 ; 0x80 8000920: 2b80 cmp r3, #128 ; 0x80 8000922: d1f9 bne.n 8000918 *(USART_DR) = c; 8000924: 4a05 ldr r2, [pc, #20] ; (800093c ) 8000926: 79fb ldrb r3, [r7, #7] 8000928: 6013 str r3, [r2, #0] } 800092a: bf00 nop 800092c: 370c adds r7, #12 800092e: 46bd mov sp, r7 8000930: f85d 7b04 ldr.w r7, [sp], #4 8000934: 4770 bx lr 8000936: bf00 nop 8000938: 40004400 .word 0x40004400 800093c: 40004404 .word 0x40004404 08000940 : void init_usart2(uint32_t baud, uint32_t sysclk){ 8000940: b580 push {r7, lr} 8000942: b082 sub sp, #8 8000944: af00 add r7, sp, #0 8000946: 6078 str r0, [r7, #4] 8000948: 6039 str r1, [r7, #0] // Enable clocks for GPIOA and USART2 *(RCC_AHB1ENR) |= (1<) 800094c: 681b ldr r3, [r3, #0] 800094e: 4a1f ldr r2, [pc, #124] ; (80009cc ) 8000950: f043 0301 orr.w r3, r3, #1 8000954: 6013 str r3, [r2, #0] *(RCC_APB1ENR) |= (1<) 8000958: 681b ldr r3, [r3, #0] 800095a: 4a1d ldr r2, [pc, #116] ; (80009d0 ) 800095c: f443 3300 orr.w r3, r3, #131072 ; 0x20000 8000960: 6013 str r3, [r2, #0] // Function 7 of PORTA pins is USART *(GPIOA_AFRL) &= (0xFFFF00FF); // Clear the bits associated with PA3 and PA2 8000962: 4b1c ldr r3, [pc, #112] ; (80009d4 ) 8000964: 681b ldr r3, [r3, #0] 8000966: 4a1b ldr r2, [pc, #108] ; (80009d4 ) 8000968: f423 437f bic.w r3, r3, #65280 ; 0xff00 800096c: 6013 str r3, [r2, #0] *(GPIOA_AFRL) |= (0b01110111<<8); // Choose function 7 for both PA3 and PA2 800096e: 4b19 ldr r3, [pc, #100] ; (80009d4 ) 8000970: 681b ldr r3, [r3, #0] 8000972: 4a18 ldr r2, [pc, #96] ; (80009d4 ) 8000974: f443 43ee orr.w r3, r3, #30464 ; 0x7700 8000978: 6013 str r3, [r2, #0] *(GPIOA_MODER) &= (0xFFFFFF0F); // Clear mode bits for PA3 and PA2 800097a: 4b17 ldr r3, [pc, #92] ; (80009d8 ) 800097c: 681b ldr r3, [r3, #0] 800097e: 4a16 ldr r2, [pc, #88] ; (80009d8 ) 8000980: f023 03f0 bic.w r3, r3, #240 ; 0xf0 8000984: 6013 str r3, [r2, #0] *(GPIOA_MODER) |= (0b1010<<4); // Both PA3 and PA2 in alt function mode 8000986: 4b14 ldr r3, [pc, #80] ; (80009d8 ) 8000988: 681b ldr r3, [r3, #0] 800098a: 4a13 ldr r2, [pc, #76] ; (80009d8 ) 800098c: f043 03a0 orr.w r3, r3, #160 ; 0xa0 8000990: 6013 str r3, [r2, #0] //USART2_init(); //8n1 no flow control // over8 = 0..oversample by 16 // M = 0..1 start bit, data size is 8, 1 stop bit // PCE= 0..Parity check not enabled // no interrupts... using polling *(USART_CR1) = (1<) 8000994: f242 020c movw r2, #8204 ; 0x200c 8000998: 601a str r2, [r3, #0] *(USART_CR2) = 0; // This is the default, but do it anyway 800099a: 4b11 ldr r3, [pc, #68] ; (80009e0 ) 800099c: 2200 movs r2, #0 800099e: 601a str r2, [r3, #0] *(USART_CR3) = 0; // This is the default, but do it anyway 80009a0: 4b10 ldr r3, [pc, #64] ; (80009e4 ) 80009a2: 2200 movs r2, #0 80009a4: 601a str r2, [r3, #0] *(USART_BRR) = sysclk/baud; 80009a6: 4910 ldr r1, [pc, #64] ; (80009e8 ) 80009a8: 683a ldr r2, [r7, #0] 80009aa: 687b ldr r3, [r7, #4] 80009ac: fbb2 f3f3 udiv r3, r2, r3 80009b0: 600b str r3, [r1, #0] /* I'm not sure if this is needed for standard IO*/ //setvbuf(stderr, NULL, _IONBF, 0); //setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); 80009b2: 4b0e ldr r3, [pc, #56] ; (80009ec ) 80009b4: 681b ldr r3, [r3, #0] 80009b6: 6898 ldr r0, [r3, #8] 80009b8: 2300 movs r3, #0 80009ba: 2202 movs r2, #2 80009bc: 2100 movs r1, #0 80009be: f000 f89d bl 8000afc } 80009c2: bf00 nop 80009c4: 3708 adds r7, #8 80009c6: 46bd mov sp, r7 80009c8: bd80 pop {r7, pc} 80009ca: bf00 nop 80009cc: 40023830 .word 0x40023830 80009d0: 40023840 .word 0x40023840 80009d4: 40020020 .word 0x40020020 80009d8: 40020000 .word 0x40020000 80009dc: 4000440c .word 0x4000440c 80009e0: 40004410 .word 0x40004410 80009e4: 40004414 .word 0x40004414 80009e8: 40004408 .word 0x40004408 80009ec: 20000004 .word 0x20000004 080009f0 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr r0, =_estack 80009f0: 480d ldr r0, [pc, #52] ; (8000a28 ) mov sp, r0 /* set stack pointer */ 80009f2: 4685 mov sp, r0 /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata 80009f4: 480d ldr r0, [pc, #52] ; (8000a2c ) ldr r1, =_edata 80009f6: 490e ldr r1, [pc, #56] ; (8000a30 ) ldr r2, =_sidata 80009f8: 4a0e ldr r2, [pc, #56] ; (8000a34 ) movs r3, #0 80009fa: 2300 movs r3, #0 b LoopCopyDataInit 80009fc: e002 b.n 8000a04 080009fe : CopyDataInit: ldr r4, [r2, r3] 80009fe: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] 8000a00: 50c4 str r4, [r0, r3] adds r3, r3, #4 8000a02: 3304 adds r3, #4 08000a04 : LoopCopyDataInit: adds r4, r0, r3 8000a04: 18c4 adds r4, r0, r3 cmp r4, r1 8000a06: 428c cmp r4, r1 bcc CopyDataInit 8000a08: d3f9 bcc.n 80009fe /* Zero fill the bss segment. */ ldr r2, =_sbss 8000a0a: 4a0b ldr r2, [pc, #44] ; (8000a38 ) ldr r4, =_ebss 8000a0c: 4c0b ldr r4, [pc, #44] ; (8000a3c ) movs r3, #0 8000a0e: 2300 movs r3, #0 b LoopFillZerobss 8000a10: e001 b.n 8000a16 08000a12 : FillZerobss: str r3, [r2] 8000a12: 6013 str r3, [r2, #0] adds r2, r2, #4 8000a14: 3204 adds r2, #4 08000a16 : LoopFillZerobss: cmp r2, r4 8000a16: 42a2 cmp r2, r4 bcc FillZerobss 8000a18: d3fb bcc.n 8000a12 /* Call the clock system intitialization function.*/ bl SystemInit 8000a1a: f3af 8000 nop.w /* Call static constructors */ bl __libc_init_array 8000a1e: f000 f829 bl 8000a74 <__libc_init_array> /* Call the application's entry point.*/ bl main 8000a22: f7ff fe31 bl 8000688
08000a26 : LoopForever: b LoopForever 8000a26: e7fe b.n 8000a26 ldr r0, =_estack 8000a28: 20020000 .word 0x20020000 ldr r0, =_sdata 8000a2c: 20000000 .word 0x20000000 ldr r1, =_edata 8000a30: 20000068 .word 0x20000068 ldr r2, =_sidata 8000a34: 08001fc0 .word 0x08001fc0 ldr r2, =_sbss 8000a38: 20000068 .word 0x20000068 ldr r4, =_ebss 8000a3c: 200000a0 .word 0x200000a0 08000a40 : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop 8000a40: e7fe b.n 8000a40 ... 08000a44 <__errno>: 8000a44: 4b01 ldr r3, [pc, #4] ; (8000a4c <__errno+0x8>) 8000a46: 6818 ldr r0, [r3, #0] 8000a48: 4770 bx lr 8000a4a: bf00 nop 8000a4c: 20000004 .word 0x20000004 08000a50 : 8000a50: 4b07 ldr r3, [pc, #28] ; (8000a70 ) 8000a52: b510 push {r4, lr} 8000a54: 681c ldr r4, [r3, #0] 8000a56: b124 cbz r4, 8000a62 8000a58: 69a3 ldr r3, [r4, #24] 8000a5a: b913 cbnz r3, 8000a62 8000a5c: 4620 mov r0, r4 8000a5e: f000 fa3f bl 8000ee0 <__sinit> 8000a62: 6861 ldr r1, [r4, #4] 8000a64: 4620 mov r0, r4 8000a66: e8bd 4010 ldmia.w sp!, {r4, lr} 8000a6a: f000 baf3 b.w 8001054 <_getc_r> 8000a6e: bf00 nop 8000a70: 20000004 .word 0x20000004 08000a74 <__libc_init_array>: 8000a74: b570 push {r4, r5, r6, lr} 8000a76: 4d0d ldr r5, [pc, #52] ; (8000aac <__libc_init_array+0x38>) 8000a78: 4c0d ldr r4, [pc, #52] ; (8000ab0 <__libc_init_array+0x3c>) 8000a7a: 1b64 subs r4, r4, r5 8000a7c: 10a4 asrs r4, r4, #2 8000a7e: 2600 movs r6, #0 8000a80: 42a6 cmp r6, r4 8000a82: d109 bne.n 8000a98 <__libc_init_array+0x24> 8000a84: 4d0b ldr r5, [pc, #44] ; (8000ab4 <__libc_init_array+0x40>) 8000a86: 4c0c ldr r4, [pc, #48] ; (8000ab8 <__libc_init_array+0x44>) 8000a88: f001 f974 bl 8001d74 <_init> 8000a8c: 1b64 subs r4, r4, r5 8000a8e: 10a4 asrs r4, r4, #2 8000a90: 2600 movs r6, #0 8000a92: 42a6 cmp r6, r4 8000a94: d105 bne.n 8000aa2 <__libc_init_array+0x2e> 8000a96: bd70 pop {r4, r5, r6, pc} 8000a98: f855 3b04 ldr.w r3, [r5], #4 8000a9c: 4798 blx r3 8000a9e: 3601 adds r6, #1 8000aa0: e7ee b.n 8000a80 <__libc_init_array+0xc> 8000aa2: f855 3b04 ldr.w r3, [r5], #4 8000aa6: 4798 blx r3 8000aa8: 3601 adds r6, #1 8000aaa: e7f2 b.n 8000a92 <__libc_init_array+0x1e> 8000aac: 08001fb8 .word 0x08001fb8 8000ab0: 08001fb8 .word 0x08001fb8 8000ab4: 08001fb8 .word 0x08001fb8 8000ab8: 08001fbc .word 0x08001fbc 08000abc : 8000abc: 4402 add r2, r0 8000abe: 4603 mov r3, r0 8000ac0: 4293 cmp r3, r2 8000ac2: d100 bne.n 8000ac6 8000ac4: 4770 bx lr 8000ac6: f803 1b01 strb.w r1, [r3], #1 8000aca: e7f9 b.n 8000ac0 08000acc : 8000acc: b40f push {r0, r1, r2, r3} 8000ace: 4b0a ldr r3, [pc, #40] ; (8000af8 ) 8000ad0: b513 push {r0, r1, r4, lr} 8000ad2: 681c ldr r4, [r3, #0] 8000ad4: b124 cbz r4, 8000ae0 8000ad6: 69a3 ldr r3, [r4, #24] 8000ad8: b913 cbnz r3, 8000ae0 8000ada: 4620 mov r0, r4 8000adc: f000 fa00 bl 8000ee0 <__sinit> 8000ae0: ab05 add r3, sp, #20 8000ae2: 9a04 ldr r2, [sp, #16] 8000ae4: 68a1 ldr r1, [r4, #8] 8000ae6: 9301 str r3, [sp, #4] 8000ae8: 4620 mov r0, r4 8000aea: f000 fc37 bl 800135c <_vfiprintf_r> 8000aee: b002 add sp, #8 8000af0: e8bd 4010 ldmia.w sp!, {r4, lr} 8000af4: b004 add sp, #16 8000af6: 4770 bx lr 8000af8: 20000004 .word 0x20000004 08000afc : 8000afc: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} 8000b00: 461d mov r5, r3 8000b02: 4b5d ldr r3, [pc, #372] ; (8000c78 ) 8000b04: 681f ldr r7, [r3, #0] 8000b06: 4604 mov r4, r0 8000b08: 460e mov r6, r1 8000b0a: 4690 mov r8, r2 8000b0c: b127 cbz r7, 8000b18 8000b0e: 69bb ldr r3, [r7, #24] 8000b10: b913 cbnz r3, 8000b18 8000b12: 4638 mov r0, r7 8000b14: f000 f9e4 bl 8000ee0 <__sinit> 8000b18: 4b58 ldr r3, [pc, #352] ; (8000c7c ) 8000b1a: 429c cmp r4, r3 8000b1c: d167 bne.n 8000bee 8000b1e: 687c ldr r4, [r7, #4] 8000b20: f1b8 0f02 cmp.w r8, #2 8000b24: d006 beq.n 8000b34 8000b26: f1b8 0f01 cmp.w r8, #1 8000b2a: f200 809f bhi.w 8000c6c 8000b2e: 2d00 cmp r5, #0 8000b30: f2c0 809c blt.w 8000c6c 8000b34: 6e63 ldr r3, [r4, #100] ; 0x64 8000b36: 07db lsls r3, r3, #31 8000b38: d405 bmi.n 8000b46 8000b3a: 89a3 ldrh r3, [r4, #12] 8000b3c: 0598 lsls r0, r3, #22 8000b3e: d402 bmi.n 8000b46 8000b40: 6da0 ldr r0, [r4, #88] ; 0x58 8000b42: f000 fac8 bl 80010d6 <__retarget_lock_acquire_recursive> 8000b46: 4621 mov r1, r4 8000b48: 4638 mov r0, r7 8000b4a: f000 f923 bl 8000d94 <_fflush_r> 8000b4e: 6b61 ldr r1, [r4, #52] ; 0x34 8000b50: b141 cbz r1, 8000b64 8000b52: f104 0344 add.w r3, r4, #68 ; 0x44 8000b56: 4299 cmp r1, r3 8000b58: d002 beq.n 8000b60 8000b5a: 4638 mov r0, r7 8000b5c: f000 fb2a bl 80011b4 <_free_r> 8000b60: 2300 movs r3, #0 8000b62: 6363 str r3, [r4, #52] ; 0x34 8000b64: 2300 movs r3, #0 8000b66: 61a3 str r3, [r4, #24] 8000b68: 6063 str r3, [r4, #4] 8000b6a: 89a3 ldrh r3, [r4, #12] 8000b6c: 0619 lsls r1, r3, #24 8000b6e: d503 bpl.n 8000b78 8000b70: 6921 ldr r1, [r4, #16] 8000b72: 4638 mov r0, r7 8000b74: f000 fb1e bl 80011b4 <_free_r> 8000b78: 89a3 ldrh r3, [r4, #12] 8000b7a: f423 634a bic.w r3, r3, #3232 ; 0xca0 8000b7e: f023 0303 bic.w r3, r3, #3 8000b82: f1b8 0f02 cmp.w r8, #2 8000b86: 81a3 strh r3, [r4, #12] 8000b88: d06c beq.n 8000c64 8000b8a: ab01 add r3, sp, #4 8000b8c: 466a mov r2, sp 8000b8e: 4621 mov r1, r4 8000b90: 4638 mov r0, r7 8000b92: f000 faa2 bl 80010da <__swhatbuf_r> 8000b96: 89a3 ldrh r3, [r4, #12] 8000b98: 4318 orrs r0, r3 8000b9a: 81a0 strh r0, [r4, #12] 8000b9c: 2d00 cmp r5, #0 8000b9e: d130 bne.n 8000c02 8000ba0: 9d00 ldr r5, [sp, #0] 8000ba2: 4628 mov r0, r5 8000ba4: f000 fafe bl 80011a4 8000ba8: 4606 mov r6, r0 8000baa: 2800 cmp r0, #0 8000bac: d155 bne.n 8000c5a 8000bae: f8dd 9000 ldr.w r9, [sp] 8000bb2: 45a9 cmp r9, r5 8000bb4: d14a bne.n 8000c4c 8000bb6: f04f 35ff mov.w r5, #4294967295 8000bba: 2200 movs r2, #0 8000bbc: 60a2 str r2, [r4, #8] 8000bbe: f104 0247 add.w r2, r4, #71 ; 0x47 8000bc2: 6022 str r2, [r4, #0] 8000bc4: 6122 str r2, [r4, #16] 8000bc6: 2201 movs r2, #1 8000bc8: f9b4 300c ldrsh.w r3, [r4, #12] 8000bcc: 6162 str r2, [r4, #20] 8000bce: 6e62 ldr r2, [r4, #100] ; 0x64 8000bd0: f043 0302 orr.w r3, r3, #2 8000bd4: 07d2 lsls r2, r2, #31 8000bd6: 81a3 strh r3, [r4, #12] 8000bd8: d405 bmi.n 8000be6 8000bda: f413 7f00 tst.w r3, #512 ; 0x200 8000bde: d102 bne.n 8000be6 8000be0: 6da0 ldr r0, [r4, #88] ; 0x58 8000be2: f000 fa79 bl 80010d8 <__retarget_lock_release_recursive> 8000be6: 4628 mov r0, r5 8000be8: b003 add sp, #12 8000bea: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} 8000bee: 4b24 ldr r3, [pc, #144] ; (8000c80 ) 8000bf0: 429c cmp r4, r3 8000bf2: d101 bne.n 8000bf8 8000bf4: 68bc ldr r4, [r7, #8] 8000bf6: e793 b.n 8000b20 8000bf8: 4b22 ldr r3, [pc, #136] ; (8000c84 ) 8000bfa: 429c cmp r4, r3 8000bfc: bf08 it eq 8000bfe: 68fc ldreq r4, [r7, #12] 8000c00: e78e b.n 8000b20 8000c02: 2e00 cmp r6, #0 8000c04: d0cd beq.n 8000ba2 8000c06: 69bb ldr r3, [r7, #24] 8000c08: b913 cbnz r3, 8000c10 8000c0a: 4638 mov r0, r7 8000c0c: f000 f968 bl 8000ee0 <__sinit> 8000c10: f1b8 0f01 cmp.w r8, #1 8000c14: bf08 it eq 8000c16: 89a3 ldrheq r3, [r4, #12] 8000c18: 6026 str r6, [r4, #0] 8000c1a: bf04 itt eq 8000c1c: f043 0301 orreq.w r3, r3, #1 8000c20: 81a3 strheq r3, [r4, #12] 8000c22: 89a2 ldrh r2, [r4, #12] 8000c24: f012 0308 ands.w r3, r2, #8 8000c28: e9c4 6504 strd r6, r5, [r4, #16] 8000c2c: d01c beq.n 8000c68 8000c2e: 07d3 lsls r3, r2, #31 8000c30: bf41 itttt mi 8000c32: 2300 movmi r3, #0 8000c34: 426d negmi r5, r5 8000c36: 60a3 strmi r3, [r4, #8] 8000c38: 61a5 strmi r5, [r4, #24] 8000c3a: bf58 it pl 8000c3c: 60a5 strpl r5, [r4, #8] 8000c3e: 6e65 ldr r5, [r4, #100] ; 0x64 8000c40: f015 0501 ands.w r5, r5, #1 8000c44: d115 bne.n 8000c72 8000c46: f412 7f00 tst.w r2, #512 ; 0x200 8000c4a: e7c8 b.n 8000bde 8000c4c: 4648 mov r0, r9 8000c4e: f000 faa9 bl 80011a4 8000c52: 4606 mov r6, r0 8000c54: 2800 cmp r0, #0 8000c56: d0ae beq.n 8000bb6 8000c58: 464d mov r5, r9 8000c5a: 89a3 ldrh r3, [r4, #12] 8000c5c: f043 0380 orr.w r3, r3, #128 ; 0x80 8000c60: 81a3 strh r3, [r4, #12] 8000c62: e7d0 b.n 8000c06 8000c64: 2500 movs r5, #0 8000c66: e7a8 b.n 8000bba 8000c68: 60a3 str r3, [r4, #8] 8000c6a: e7e8 b.n 8000c3e 8000c6c: f04f 35ff mov.w r5, #4294967295 8000c70: e7b9 b.n 8000be6 8000c72: 2500 movs r5, #0 8000c74: e7b7 b.n 8000be6 8000c76: bf00 nop 8000c78: 20000004 .word 0x20000004 8000c7c: 08001f44 .word 0x08001f44 8000c80: 08001f64 .word 0x08001f64 8000c84: 08001f24 .word 0x08001f24 08000c88 <__sflush_r>: 8000c88: 898a ldrh r2, [r1, #12] 8000c8a: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 8000c8e: 4605 mov r5, r0 8000c90: 0710 lsls r0, r2, #28 8000c92: 460c mov r4, r1 8000c94: d458 bmi.n 8000d48 <__sflush_r+0xc0> 8000c96: 684b ldr r3, [r1, #4] 8000c98: 2b00 cmp r3, #0 8000c9a: dc05 bgt.n 8000ca8 <__sflush_r+0x20> 8000c9c: 6c0b ldr r3, [r1, #64] ; 0x40 8000c9e: 2b00 cmp r3, #0 8000ca0: dc02 bgt.n 8000ca8 <__sflush_r+0x20> 8000ca2: 2000 movs r0, #0 8000ca4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 8000ca8: 6ae6 ldr r6, [r4, #44] ; 0x2c 8000caa: 2e00 cmp r6, #0 8000cac: d0f9 beq.n 8000ca2 <__sflush_r+0x1a> 8000cae: 2300 movs r3, #0 8000cb0: f412 5280 ands.w r2, r2, #4096 ; 0x1000 8000cb4: 682f ldr r7, [r5, #0] 8000cb6: 602b str r3, [r5, #0] 8000cb8: d032 beq.n 8000d20 <__sflush_r+0x98> 8000cba: 6d60 ldr r0, [r4, #84] ; 0x54 8000cbc: 89a3 ldrh r3, [r4, #12] 8000cbe: 075a lsls r2, r3, #29 8000cc0: d505 bpl.n 8000cce <__sflush_r+0x46> 8000cc2: 6863 ldr r3, [r4, #4] 8000cc4: 1ac0 subs r0, r0, r3 8000cc6: 6b63 ldr r3, [r4, #52] ; 0x34 8000cc8: b10b cbz r3, 8000cce <__sflush_r+0x46> 8000cca: 6c23 ldr r3, [r4, #64] ; 0x40 8000ccc: 1ac0 subs r0, r0, r3 8000cce: 2300 movs r3, #0 8000cd0: 4602 mov r2, r0 8000cd2: 6ae6 ldr r6, [r4, #44] ; 0x2c 8000cd4: 6a21 ldr r1, [r4, #32] 8000cd6: 4628 mov r0, r5 8000cd8: 47b0 blx r6 8000cda: 1c43 adds r3, r0, #1 8000cdc: 89a3 ldrh r3, [r4, #12] 8000cde: d106 bne.n 8000cee <__sflush_r+0x66> 8000ce0: 6829 ldr r1, [r5, #0] 8000ce2: 291d cmp r1, #29 8000ce4: d82c bhi.n 8000d40 <__sflush_r+0xb8> 8000ce6: 4a2a ldr r2, [pc, #168] ; (8000d90 <__sflush_r+0x108>) 8000ce8: 40ca lsrs r2, r1 8000cea: 07d6 lsls r6, r2, #31 8000cec: d528 bpl.n 8000d40 <__sflush_r+0xb8> 8000cee: 2200 movs r2, #0 8000cf0: 6062 str r2, [r4, #4] 8000cf2: 04d9 lsls r1, r3, #19 8000cf4: 6922 ldr r2, [r4, #16] 8000cf6: 6022 str r2, [r4, #0] 8000cf8: d504 bpl.n 8000d04 <__sflush_r+0x7c> 8000cfa: 1c42 adds r2, r0, #1 8000cfc: d101 bne.n 8000d02 <__sflush_r+0x7a> 8000cfe: 682b ldr r3, [r5, #0] 8000d00: b903 cbnz r3, 8000d04 <__sflush_r+0x7c> 8000d02: 6560 str r0, [r4, #84] ; 0x54 8000d04: 6b61 ldr r1, [r4, #52] ; 0x34 8000d06: 602f str r7, [r5, #0] 8000d08: 2900 cmp r1, #0 8000d0a: d0ca beq.n 8000ca2 <__sflush_r+0x1a> 8000d0c: f104 0344 add.w r3, r4, #68 ; 0x44 8000d10: 4299 cmp r1, r3 8000d12: d002 beq.n 8000d1a <__sflush_r+0x92> 8000d14: 4628 mov r0, r5 8000d16: f000 fa4d bl 80011b4 <_free_r> 8000d1a: 2000 movs r0, #0 8000d1c: 6360 str r0, [r4, #52] ; 0x34 8000d1e: e7c1 b.n 8000ca4 <__sflush_r+0x1c> 8000d20: 6a21 ldr r1, [r4, #32] 8000d22: 2301 movs r3, #1 8000d24: 4628 mov r0, r5 8000d26: 47b0 blx r6 8000d28: 1c41 adds r1, r0, #1 8000d2a: d1c7 bne.n 8000cbc <__sflush_r+0x34> 8000d2c: 682b ldr r3, [r5, #0] 8000d2e: 2b00 cmp r3, #0 8000d30: d0c4 beq.n 8000cbc <__sflush_r+0x34> 8000d32: 2b1d cmp r3, #29 8000d34: d001 beq.n 8000d3a <__sflush_r+0xb2> 8000d36: 2b16 cmp r3, #22 8000d38: d101 bne.n 8000d3e <__sflush_r+0xb6> 8000d3a: 602f str r7, [r5, #0] 8000d3c: e7b1 b.n 8000ca2 <__sflush_r+0x1a> 8000d3e: 89a3 ldrh r3, [r4, #12] 8000d40: f043 0340 orr.w r3, r3, #64 ; 0x40 8000d44: 81a3 strh r3, [r4, #12] 8000d46: e7ad b.n 8000ca4 <__sflush_r+0x1c> 8000d48: 690f ldr r7, [r1, #16] 8000d4a: 2f00 cmp r7, #0 8000d4c: d0a9 beq.n 8000ca2 <__sflush_r+0x1a> 8000d4e: 0793 lsls r3, r2, #30 8000d50: 680e ldr r6, [r1, #0] 8000d52: bf08 it eq 8000d54: 694b ldreq r3, [r1, #20] 8000d56: 600f str r7, [r1, #0] 8000d58: bf18 it ne 8000d5a: 2300 movne r3, #0 8000d5c: eba6 0807 sub.w r8, r6, r7 8000d60: 608b str r3, [r1, #8] 8000d62: f1b8 0f00 cmp.w r8, #0 8000d66: dd9c ble.n 8000ca2 <__sflush_r+0x1a> 8000d68: 6a21 ldr r1, [r4, #32] 8000d6a: 6aa6 ldr r6, [r4, #40] ; 0x28 8000d6c: 4643 mov r3, r8 8000d6e: 463a mov r2, r7 8000d70: 4628 mov r0, r5 8000d72: 47b0 blx r6 8000d74: 2800 cmp r0, #0 8000d76: dc06 bgt.n 8000d86 <__sflush_r+0xfe> 8000d78: 89a3 ldrh r3, [r4, #12] 8000d7a: f043 0340 orr.w r3, r3, #64 ; 0x40 8000d7e: 81a3 strh r3, [r4, #12] 8000d80: f04f 30ff mov.w r0, #4294967295 8000d84: e78e b.n 8000ca4 <__sflush_r+0x1c> 8000d86: 4407 add r7, r0 8000d88: eba8 0800 sub.w r8, r8, r0 8000d8c: e7e9 b.n 8000d62 <__sflush_r+0xda> 8000d8e: bf00 nop 8000d90: 20400001 .word 0x20400001 08000d94 <_fflush_r>: 8000d94: b538 push {r3, r4, r5, lr} 8000d96: 690b ldr r3, [r1, #16] 8000d98: 4605 mov r5, r0 8000d9a: 460c mov r4, r1 8000d9c: b913 cbnz r3, 8000da4 <_fflush_r+0x10> 8000d9e: 2500 movs r5, #0 8000da0: 4628 mov r0, r5 8000da2: bd38 pop {r3, r4, r5, pc} 8000da4: b118 cbz r0, 8000dae <_fflush_r+0x1a> 8000da6: 6983 ldr r3, [r0, #24] 8000da8: b90b cbnz r3, 8000dae <_fflush_r+0x1a> 8000daa: f000 f899 bl 8000ee0 <__sinit> 8000dae: 4b14 ldr r3, [pc, #80] ; (8000e00 <_fflush_r+0x6c>) 8000db0: 429c cmp r4, r3 8000db2: d11b bne.n 8000dec <_fflush_r+0x58> 8000db4: 686c ldr r4, [r5, #4] 8000db6: f9b4 300c ldrsh.w r3, [r4, #12] 8000dba: 2b00 cmp r3, #0 8000dbc: d0ef beq.n 8000d9e <_fflush_r+0xa> 8000dbe: 6e62 ldr r2, [r4, #100] ; 0x64 8000dc0: 07d0 lsls r0, r2, #31 8000dc2: d404 bmi.n 8000dce <_fflush_r+0x3a> 8000dc4: 0599 lsls r1, r3, #22 8000dc6: d402 bmi.n 8000dce <_fflush_r+0x3a> 8000dc8: 6da0 ldr r0, [r4, #88] ; 0x58 8000dca: f000 f984 bl 80010d6 <__retarget_lock_acquire_recursive> 8000dce: 4628 mov r0, r5 8000dd0: 4621 mov r1, r4 8000dd2: f7ff ff59 bl 8000c88 <__sflush_r> 8000dd6: 6e63 ldr r3, [r4, #100] ; 0x64 8000dd8: 07da lsls r2, r3, #31 8000dda: 4605 mov r5, r0 8000ddc: d4e0 bmi.n 8000da0 <_fflush_r+0xc> 8000dde: 89a3 ldrh r3, [r4, #12] 8000de0: 059b lsls r3, r3, #22 8000de2: d4dd bmi.n 8000da0 <_fflush_r+0xc> 8000de4: 6da0 ldr r0, [r4, #88] ; 0x58 8000de6: f000 f977 bl 80010d8 <__retarget_lock_release_recursive> 8000dea: e7d9 b.n 8000da0 <_fflush_r+0xc> 8000dec: 4b05 ldr r3, [pc, #20] ; (8000e04 <_fflush_r+0x70>) 8000dee: 429c cmp r4, r3 8000df0: d101 bne.n 8000df6 <_fflush_r+0x62> 8000df2: 68ac ldr r4, [r5, #8] 8000df4: e7df b.n 8000db6 <_fflush_r+0x22> 8000df6: 4b04 ldr r3, [pc, #16] ; (8000e08 <_fflush_r+0x74>) 8000df8: 429c cmp r4, r3 8000dfa: bf08 it eq 8000dfc: 68ec ldreq r4, [r5, #12] 8000dfe: e7da b.n 8000db6 <_fflush_r+0x22> 8000e00: 08001f44 .word 0x08001f44 8000e04: 08001f64 .word 0x08001f64 8000e08: 08001f24 .word 0x08001f24 08000e0c : 8000e0c: 4601 mov r1, r0 8000e0e: b920 cbnz r0, 8000e1a 8000e10: 4b04 ldr r3, [pc, #16] ; (8000e24 ) 8000e12: 4905 ldr r1, [pc, #20] ; (8000e28 ) 8000e14: 6818 ldr r0, [r3, #0] 8000e16: f000 b8fe b.w 8001016 <_fwalk_reent> 8000e1a: 4b04 ldr r3, [pc, #16] ; (8000e2c ) 8000e1c: 6818 ldr r0, [r3, #0] 8000e1e: f7ff bfb9 b.w 8000d94 <_fflush_r> 8000e22: bf00 nop 8000e24: 08001f20 .word 0x08001f20 8000e28: 08000d95 .word 0x08000d95 8000e2c: 20000004 .word 0x20000004 08000e30 : 8000e30: 2300 movs r3, #0 8000e32: b510 push {r4, lr} 8000e34: 4604 mov r4, r0 8000e36: e9c0 3300 strd r3, r3, [r0] 8000e3a: e9c0 3304 strd r3, r3, [r0, #16] 8000e3e: 6083 str r3, [r0, #8] 8000e40: 8181 strh r1, [r0, #12] 8000e42: 6643 str r3, [r0, #100] ; 0x64 8000e44: 81c2 strh r2, [r0, #14] 8000e46: 6183 str r3, [r0, #24] 8000e48: 4619 mov r1, r3 8000e4a: 2208 movs r2, #8 8000e4c: 305c adds r0, #92 ; 0x5c 8000e4e: f7ff fe35 bl 8000abc 8000e52: 4b05 ldr r3, [pc, #20] ; (8000e68 ) 8000e54: 6263 str r3, [r4, #36] ; 0x24 8000e56: 4b05 ldr r3, [pc, #20] ; (8000e6c ) 8000e58: 62a3 str r3, [r4, #40] ; 0x28 8000e5a: 4b05 ldr r3, [pc, #20] ; (8000e70 ) 8000e5c: 62e3 str r3, [r4, #44] ; 0x2c 8000e5e: 4b05 ldr r3, [pc, #20] ; (8000e74 ) 8000e60: 6224 str r4, [r4, #32] 8000e62: 6323 str r3, [r4, #48] ; 0x30 8000e64: bd10 pop {r4, pc} 8000e66: bf00 nop 8000e68: 0800195d .word 0x0800195d 8000e6c: 0800197f .word 0x0800197f 8000e70: 080019b7 .word 0x080019b7 8000e74: 080019db .word 0x080019db 08000e78 <_cleanup_r>: 8000e78: 4901 ldr r1, [pc, #4] ; (8000e80 <_cleanup_r+0x8>) 8000e7a: f000 b8cc b.w 8001016 <_fwalk_reent> 8000e7e: bf00 nop 8000e80: 08000d95 .word 0x08000d95 08000e84 <__sfmoreglue>: 8000e84: b570 push {r4, r5, r6, lr} 8000e86: 1e4a subs r2, r1, #1 8000e88: 2568 movs r5, #104 ; 0x68 8000e8a: 4355 muls r5, r2 8000e8c: 460e mov r6, r1 8000e8e: f105 0174 add.w r1, r5, #116 ; 0x74 8000e92: f000 f9df bl 8001254 <_malloc_r> 8000e96: 4604 mov r4, r0 8000e98: b140 cbz r0, 8000eac <__sfmoreglue+0x28> 8000e9a: 2100 movs r1, #0 8000e9c: e9c0 1600 strd r1, r6, [r0] 8000ea0: 300c adds r0, #12 8000ea2: 60a0 str r0, [r4, #8] 8000ea4: f105 0268 add.w r2, r5, #104 ; 0x68 8000ea8: f7ff fe08 bl 8000abc 8000eac: 4620 mov r0, r4 8000eae: bd70 pop {r4, r5, r6, pc} 08000eb0 <__sfp_lock_acquire>: 8000eb0: 4801 ldr r0, [pc, #4] ; (8000eb8 <__sfp_lock_acquire+0x8>) 8000eb2: f000 b910 b.w 80010d6 <__retarget_lock_acquire_recursive> 8000eb6: bf00 nop 8000eb8: 20000098 .word 0x20000098 08000ebc <__sfp_lock_release>: 8000ebc: 4801 ldr r0, [pc, #4] ; (8000ec4 <__sfp_lock_release+0x8>) 8000ebe: f000 b90b b.w 80010d8 <__retarget_lock_release_recursive> 8000ec2: bf00 nop 8000ec4: 20000098 .word 0x20000098 08000ec8 <__sinit_lock_acquire>: 8000ec8: 4801 ldr r0, [pc, #4] ; (8000ed0 <__sinit_lock_acquire+0x8>) 8000eca: f000 b904 b.w 80010d6 <__retarget_lock_acquire_recursive> 8000ece: bf00 nop 8000ed0: 20000093 .word 0x20000093 08000ed4 <__sinit_lock_release>: 8000ed4: 4801 ldr r0, [pc, #4] ; (8000edc <__sinit_lock_release+0x8>) 8000ed6: f000 b8ff b.w 80010d8 <__retarget_lock_release_recursive> 8000eda: bf00 nop 8000edc: 20000093 .word 0x20000093 08000ee0 <__sinit>: 8000ee0: b510 push {r4, lr} 8000ee2: 4604 mov r4, r0 8000ee4: f7ff fff0 bl 8000ec8 <__sinit_lock_acquire> 8000ee8: 69a3 ldr r3, [r4, #24] 8000eea: b11b cbz r3, 8000ef4 <__sinit+0x14> 8000eec: e8bd 4010 ldmia.w sp!, {r4, lr} 8000ef0: f7ff bff0 b.w 8000ed4 <__sinit_lock_release> 8000ef4: e9c4 3312 strd r3, r3, [r4, #72] ; 0x48 8000ef8: 6523 str r3, [r4, #80] ; 0x50 8000efa: 4b13 ldr r3, [pc, #76] ; (8000f48 <__sinit+0x68>) 8000efc: 4a13 ldr r2, [pc, #76] ; (8000f4c <__sinit+0x6c>) 8000efe: 681b ldr r3, [r3, #0] 8000f00: 62a2 str r2, [r4, #40] ; 0x28 8000f02: 42a3 cmp r3, r4 8000f04: bf04 itt eq 8000f06: 2301 moveq r3, #1 8000f08: 61a3 streq r3, [r4, #24] 8000f0a: 4620 mov r0, r4 8000f0c: f000 f820 bl 8000f50 <__sfp> 8000f10: 6060 str r0, [r4, #4] 8000f12: 4620 mov r0, r4 8000f14: f000 f81c bl 8000f50 <__sfp> 8000f18: 60a0 str r0, [r4, #8] 8000f1a: 4620 mov r0, r4 8000f1c: f000 f818 bl 8000f50 <__sfp> 8000f20: 2200 movs r2, #0 8000f22: 60e0 str r0, [r4, #12] 8000f24: 2104 movs r1, #4 8000f26: 6860 ldr r0, [r4, #4] 8000f28: f7ff ff82 bl 8000e30 8000f2c: 68a0 ldr r0, [r4, #8] 8000f2e: 2201 movs r2, #1 8000f30: 2109 movs r1, #9 8000f32: f7ff ff7d bl 8000e30 8000f36: 68e0 ldr r0, [r4, #12] 8000f38: 2202 movs r2, #2 8000f3a: 2112 movs r1, #18 8000f3c: f7ff ff78 bl 8000e30 8000f40: 2301 movs r3, #1 8000f42: 61a3 str r3, [r4, #24] 8000f44: e7d2 b.n 8000eec <__sinit+0xc> 8000f46: bf00 nop 8000f48: 08001f20 .word 0x08001f20 8000f4c: 08000e79 .word 0x08000e79 08000f50 <__sfp>: 8000f50: b5f8 push {r3, r4, r5, r6, r7, lr} 8000f52: 4607 mov r7, r0 8000f54: f7ff ffac bl 8000eb0 <__sfp_lock_acquire> 8000f58: 4b1e ldr r3, [pc, #120] ; (8000fd4 <__sfp+0x84>) 8000f5a: 681e ldr r6, [r3, #0] 8000f5c: 69b3 ldr r3, [r6, #24] 8000f5e: b913 cbnz r3, 8000f66 <__sfp+0x16> 8000f60: 4630 mov r0, r6 8000f62: f7ff ffbd bl 8000ee0 <__sinit> 8000f66: 3648 adds r6, #72 ; 0x48 8000f68: e9d6 3401 ldrd r3, r4, [r6, #4] 8000f6c: 3b01 subs r3, #1 8000f6e: d503 bpl.n 8000f78 <__sfp+0x28> 8000f70: 6833 ldr r3, [r6, #0] 8000f72: b30b cbz r3, 8000fb8 <__sfp+0x68> 8000f74: 6836 ldr r6, [r6, #0] 8000f76: e7f7 b.n 8000f68 <__sfp+0x18> 8000f78: f9b4 500c ldrsh.w r5, [r4, #12] 8000f7c: b9d5 cbnz r5, 8000fb4 <__sfp+0x64> 8000f7e: 4b16 ldr r3, [pc, #88] ; (8000fd8 <__sfp+0x88>) 8000f80: 60e3 str r3, [r4, #12] 8000f82: f104 0058 add.w r0, r4, #88 ; 0x58 8000f86: 6665 str r5, [r4, #100] ; 0x64 8000f88: f000 f8a4 bl 80010d4 <__retarget_lock_init_recursive> 8000f8c: f7ff ff96 bl 8000ebc <__sfp_lock_release> 8000f90: e9c4 5501 strd r5, r5, [r4, #4] 8000f94: e9c4 5504 strd r5, r5, [r4, #16] 8000f98: 6025 str r5, [r4, #0] 8000f9a: 61a5 str r5, [r4, #24] 8000f9c: 2208 movs r2, #8 8000f9e: 4629 mov r1, r5 8000fa0: f104 005c add.w r0, r4, #92 ; 0x5c 8000fa4: f7ff fd8a bl 8000abc 8000fa8: e9c4 550d strd r5, r5, [r4, #52] ; 0x34 8000fac: e9c4 5512 strd r5, r5, [r4, #72] ; 0x48 8000fb0: 4620 mov r0, r4 8000fb2: bdf8 pop {r3, r4, r5, r6, r7, pc} 8000fb4: 3468 adds r4, #104 ; 0x68 8000fb6: e7d9 b.n 8000f6c <__sfp+0x1c> 8000fb8: 2104 movs r1, #4 8000fba: 4638 mov r0, r7 8000fbc: f7ff ff62 bl 8000e84 <__sfmoreglue> 8000fc0: 4604 mov r4, r0 8000fc2: 6030 str r0, [r6, #0] 8000fc4: 2800 cmp r0, #0 8000fc6: d1d5 bne.n 8000f74 <__sfp+0x24> 8000fc8: f7ff ff78 bl 8000ebc <__sfp_lock_release> 8000fcc: 230c movs r3, #12 8000fce: 603b str r3, [r7, #0] 8000fd0: e7ee b.n 8000fb0 <__sfp+0x60> 8000fd2: bf00 nop 8000fd4: 08001f20 .word 0x08001f20 8000fd8: ffff0001 .word 0xffff0001 08000fdc <_fwalk>: 8000fdc: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 8000fe0: 460f mov r7, r1 8000fe2: f100 0448 add.w r4, r0, #72 ; 0x48 8000fe6: 2600 movs r6, #0 8000fe8: e9d4 8501 ldrd r8, r5, [r4, #4] 8000fec: f1b8 0801 subs.w r8, r8, #1 8000ff0: d505 bpl.n 8000ffe <_fwalk+0x22> 8000ff2: 6824 ldr r4, [r4, #0] 8000ff4: 2c00 cmp r4, #0 8000ff6: d1f7 bne.n 8000fe8 <_fwalk+0xc> 8000ff8: 4630 mov r0, r6 8000ffa: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 8000ffe: 89ab ldrh r3, [r5, #12] 8001000: 2b01 cmp r3, #1 8001002: d906 bls.n 8001012 <_fwalk+0x36> 8001004: f9b5 300e ldrsh.w r3, [r5, #14] 8001008: 3301 adds r3, #1 800100a: d002 beq.n 8001012 <_fwalk+0x36> 800100c: 4628 mov r0, r5 800100e: 47b8 blx r7 8001010: 4306 orrs r6, r0 8001012: 3568 adds r5, #104 ; 0x68 8001014: e7ea b.n 8000fec <_fwalk+0x10> 08001016 <_fwalk_reent>: 8001016: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} 800101a: 4606 mov r6, r0 800101c: 4688 mov r8, r1 800101e: f100 0448 add.w r4, r0, #72 ; 0x48 8001022: 2700 movs r7, #0 8001024: e9d4 9501 ldrd r9, r5, [r4, #4] 8001028: f1b9 0901 subs.w r9, r9, #1 800102c: d505 bpl.n 800103a <_fwalk_reent+0x24> 800102e: 6824 ldr r4, [r4, #0] 8001030: 2c00 cmp r4, #0 8001032: d1f7 bne.n 8001024 <_fwalk_reent+0xe> 8001034: 4638 mov r0, r7 8001036: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} 800103a: 89ab ldrh r3, [r5, #12] 800103c: 2b01 cmp r3, #1 800103e: d907 bls.n 8001050 <_fwalk_reent+0x3a> 8001040: f9b5 300e ldrsh.w r3, [r5, #14] 8001044: 3301 adds r3, #1 8001046: d003 beq.n 8001050 <_fwalk_reent+0x3a> 8001048: 4629 mov r1, r5 800104a: 4630 mov r0, r6 800104c: 47c0 blx r8 800104e: 4307 orrs r7, r0 8001050: 3568 adds r5, #104 ; 0x68 8001052: e7e9 b.n 8001028 <_fwalk_reent+0x12> 08001054 <_getc_r>: 8001054: b538 push {r3, r4, r5, lr} 8001056: 460c mov r4, r1 8001058: 4605 mov r5, r0 800105a: b118 cbz r0, 8001064 <_getc_r+0x10> 800105c: 6983 ldr r3, [r0, #24] 800105e: b90b cbnz r3, 8001064 <_getc_r+0x10> 8001060: f7ff ff3e bl 8000ee0 <__sinit> 8001064: 4b18 ldr r3, [pc, #96] ; (80010c8 <_getc_r+0x74>) 8001066: 429c cmp r4, r3 8001068: d11e bne.n 80010a8 <_getc_r+0x54> 800106a: 686c ldr r4, [r5, #4] 800106c: 6e63 ldr r3, [r4, #100] ; 0x64 800106e: 07d8 lsls r0, r3, #31 8001070: d405 bmi.n 800107e <_getc_r+0x2a> 8001072: 89a3 ldrh r3, [r4, #12] 8001074: 0599 lsls r1, r3, #22 8001076: d402 bmi.n 800107e <_getc_r+0x2a> 8001078: 6da0 ldr r0, [r4, #88] ; 0x58 800107a: f000 f82c bl 80010d6 <__retarget_lock_acquire_recursive> 800107e: 6863 ldr r3, [r4, #4] 8001080: 3b01 subs r3, #1 8001082: 2b00 cmp r3, #0 8001084: 6063 str r3, [r4, #4] 8001086: da19 bge.n 80010bc <_getc_r+0x68> 8001088: 4628 mov r0, r5 800108a: 4621 mov r1, r4 800108c: f000 fc2a bl 80018e4 <__srget_r> 8001090: 4605 mov r5, r0 8001092: 6e63 ldr r3, [r4, #100] ; 0x64 8001094: 07da lsls r2, r3, #31 8001096: d405 bmi.n 80010a4 <_getc_r+0x50> 8001098: 89a3 ldrh r3, [r4, #12] 800109a: 059b lsls r3, r3, #22 800109c: d402 bmi.n 80010a4 <_getc_r+0x50> 800109e: 6da0 ldr r0, [r4, #88] ; 0x58 80010a0: f000 f81a bl 80010d8 <__retarget_lock_release_recursive> 80010a4: 4628 mov r0, r5 80010a6: bd38 pop {r3, r4, r5, pc} 80010a8: 4b08 ldr r3, [pc, #32] ; (80010cc <_getc_r+0x78>) 80010aa: 429c cmp r4, r3 80010ac: d101 bne.n 80010b2 <_getc_r+0x5e> 80010ae: 68ac ldr r4, [r5, #8] 80010b0: e7dc b.n 800106c <_getc_r+0x18> 80010b2: 4b07 ldr r3, [pc, #28] ; (80010d0 <_getc_r+0x7c>) 80010b4: 429c cmp r4, r3 80010b6: bf08 it eq 80010b8: 68ec ldreq r4, [r5, #12] 80010ba: e7d7 b.n 800106c <_getc_r+0x18> 80010bc: 6823 ldr r3, [r4, #0] 80010be: 1c5a adds r2, r3, #1 80010c0: 6022 str r2, [r4, #0] 80010c2: 781d ldrb r5, [r3, #0] 80010c4: e7e5 b.n 8001092 <_getc_r+0x3e> 80010c6: bf00 nop 80010c8: 08001f44 .word 0x08001f44 80010cc: 08001f64 .word 0x08001f64 80010d0: 08001f24 .word 0x08001f24 080010d4 <__retarget_lock_init_recursive>: 80010d4: 4770 bx lr 080010d6 <__retarget_lock_acquire_recursive>: 80010d6: 4770 bx lr 080010d8 <__retarget_lock_release_recursive>: 80010d8: 4770 bx lr 080010da <__swhatbuf_r>: 80010da: b570 push {r4, r5, r6, lr} 80010dc: 460e mov r6, r1 80010de: f9b1 100e ldrsh.w r1, [r1, #14] 80010e2: 2900 cmp r1, #0 80010e4: b096 sub sp, #88 ; 0x58 80010e6: 4614 mov r4, r2 80010e8: 461d mov r5, r3 80010ea: da07 bge.n 80010fc <__swhatbuf_r+0x22> 80010ec: 2300 movs r3, #0 80010ee: 602b str r3, [r5, #0] 80010f0: 89b3 ldrh r3, [r6, #12] 80010f2: 061a lsls r2, r3, #24 80010f4: d410 bmi.n 8001118 <__swhatbuf_r+0x3e> 80010f6: f44f 6380 mov.w r3, #1024 ; 0x400 80010fa: e00e b.n 800111a <__swhatbuf_r+0x40> 80010fc: 466a mov r2, sp 80010fe: f000 fd53 bl 8001ba8 <_fstat_r> 8001102: 2800 cmp r0, #0 8001104: dbf2 blt.n 80010ec <__swhatbuf_r+0x12> 8001106: 9a01 ldr r2, [sp, #4] 8001108: f402 4270 and.w r2, r2, #61440 ; 0xf000 800110c: f5a2 5300 sub.w r3, r2, #8192 ; 0x2000 8001110: 425a negs r2, r3 8001112: 415a adcs r2, r3 8001114: 602a str r2, [r5, #0] 8001116: e7ee b.n 80010f6 <__swhatbuf_r+0x1c> 8001118: 2340 movs r3, #64 ; 0x40 800111a: 2000 movs r0, #0 800111c: 6023 str r3, [r4, #0] 800111e: b016 add sp, #88 ; 0x58 8001120: bd70 pop {r4, r5, r6, pc} ... 08001124 <__smakebuf_r>: 8001124: 898b ldrh r3, [r1, #12] 8001126: b573 push {r0, r1, r4, r5, r6, lr} 8001128: 079d lsls r5, r3, #30 800112a: 4606 mov r6, r0 800112c: 460c mov r4, r1 800112e: d507 bpl.n 8001140 <__smakebuf_r+0x1c> 8001130: f104 0347 add.w r3, r4, #71 ; 0x47 8001134: 6023 str r3, [r4, #0] 8001136: 6123 str r3, [r4, #16] 8001138: 2301 movs r3, #1 800113a: 6163 str r3, [r4, #20] 800113c: b002 add sp, #8 800113e: bd70 pop {r4, r5, r6, pc} 8001140: ab01 add r3, sp, #4 8001142: 466a mov r2, sp 8001144: f7ff ffc9 bl 80010da <__swhatbuf_r> 8001148: 9900 ldr r1, [sp, #0] 800114a: 4605 mov r5, r0 800114c: 4630 mov r0, r6 800114e: f000 f881 bl 8001254 <_malloc_r> 8001152: b948 cbnz r0, 8001168 <__smakebuf_r+0x44> 8001154: f9b4 300c ldrsh.w r3, [r4, #12] 8001158: 059a lsls r2, r3, #22 800115a: d4ef bmi.n 800113c <__smakebuf_r+0x18> 800115c: f023 0303 bic.w r3, r3, #3 8001160: f043 0302 orr.w r3, r3, #2 8001164: 81a3 strh r3, [r4, #12] 8001166: e7e3 b.n 8001130 <__smakebuf_r+0xc> 8001168: 4b0d ldr r3, [pc, #52] ; (80011a0 <__smakebuf_r+0x7c>) 800116a: 62b3 str r3, [r6, #40] ; 0x28 800116c: 89a3 ldrh r3, [r4, #12] 800116e: 6020 str r0, [r4, #0] 8001170: f043 0380 orr.w r3, r3, #128 ; 0x80 8001174: 81a3 strh r3, [r4, #12] 8001176: 9b00 ldr r3, [sp, #0] 8001178: 6163 str r3, [r4, #20] 800117a: 9b01 ldr r3, [sp, #4] 800117c: 6120 str r0, [r4, #16] 800117e: b15b cbz r3, 8001198 <__smakebuf_r+0x74> 8001180: f9b4 100e ldrsh.w r1, [r4, #14] 8001184: 4630 mov r0, r6 8001186: f000 fd21 bl 8001bcc <_isatty_r> 800118a: b128 cbz r0, 8001198 <__smakebuf_r+0x74> 800118c: 89a3 ldrh r3, [r4, #12] 800118e: f023 0303 bic.w r3, r3, #3 8001192: f043 0301 orr.w r3, r3, #1 8001196: 81a3 strh r3, [r4, #12] 8001198: 89a0 ldrh r0, [r4, #12] 800119a: 4305 orrs r5, r0 800119c: 81a5 strh r5, [r4, #12] 800119e: e7cd b.n 800113c <__smakebuf_r+0x18> 80011a0: 08000e79 .word 0x08000e79 080011a4 : 80011a4: 4b02 ldr r3, [pc, #8] ; (80011b0 ) 80011a6: 4601 mov r1, r0 80011a8: 6818 ldr r0, [r3, #0] 80011aa: f000 b853 b.w 8001254 <_malloc_r> 80011ae: bf00 nop 80011b0: 20000004 .word 0x20000004 080011b4 <_free_r>: 80011b4: b537 push {r0, r1, r2, r4, r5, lr} 80011b6: 2900 cmp r1, #0 80011b8: d048 beq.n 800124c <_free_r+0x98> 80011ba: f851 3c04 ldr.w r3, [r1, #-4] 80011be: 9001 str r0, [sp, #4] 80011c0: 2b00 cmp r3, #0 80011c2: f1a1 0404 sub.w r4, r1, #4 80011c6: bfb8 it lt 80011c8: 18e4 addlt r4, r4, r3 80011ca: f000 fd21 bl 8001c10 <__malloc_lock> 80011ce: 4a20 ldr r2, [pc, #128] ; (8001250 <_free_r+0x9c>) 80011d0: 9801 ldr r0, [sp, #4] 80011d2: 6813 ldr r3, [r2, #0] 80011d4: 4615 mov r5, r2 80011d6: b933 cbnz r3, 80011e6 <_free_r+0x32> 80011d8: 6063 str r3, [r4, #4] 80011da: 6014 str r4, [r2, #0] 80011dc: b003 add sp, #12 80011de: e8bd 4030 ldmia.w sp!, {r4, r5, lr} 80011e2: f000 bd1b b.w 8001c1c <__malloc_unlock> 80011e6: 42a3 cmp r3, r4 80011e8: d90b bls.n 8001202 <_free_r+0x4e> 80011ea: 6821 ldr r1, [r4, #0] 80011ec: 1862 adds r2, r4, r1 80011ee: 4293 cmp r3, r2 80011f0: bf04 itt eq 80011f2: 681a ldreq r2, [r3, #0] 80011f4: 685b ldreq r3, [r3, #4] 80011f6: 6063 str r3, [r4, #4] 80011f8: bf04 itt eq 80011fa: 1852 addeq r2, r2, r1 80011fc: 6022 streq r2, [r4, #0] 80011fe: 602c str r4, [r5, #0] 8001200: e7ec b.n 80011dc <_free_r+0x28> 8001202: 461a mov r2, r3 8001204: 685b ldr r3, [r3, #4] 8001206: b10b cbz r3, 800120c <_free_r+0x58> 8001208: 42a3 cmp r3, r4 800120a: d9fa bls.n 8001202 <_free_r+0x4e> 800120c: 6811 ldr r1, [r2, #0] 800120e: 1855 adds r5, r2, r1 8001210: 42a5 cmp r5, r4 8001212: d10b bne.n 800122c <_free_r+0x78> 8001214: 6824 ldr r4, [r4, #0] 8001216: 4421 add r1, r4 8001218: 1854 adds r4, r2, r1 800121a: 42a3 cmp r3, r4 800121c: 6011 str r1, [r2, #0] 800121e: d1dd bne.n 80011dc <_free_r+0x28> 8001220: 681c ldr r4, [r3, #0] 8001222: 685b ldr r3, [r3, #4] 8001224: 6053 str r3, [r2, #4] 8001226: 4421 add r1, r4 8001228: 6011 str r1, [r2, #0] 800122a: e7d7 b.n 80011dc <_free_r+0x28> 800122c: d902 bls.n 8001234 <_free_r+0x80> 800122e: 230c movs r3, #12 8001230: 6003 str r3, [r0, #0] 8001232: e7d3 b.n 80011dc <_free_r+0x28> 8001234: 6825 ldr r5, [r4, #0] 8001236: 1961 adds r1, r4, r5 8001238: 428b cmp r3, r1 800123a: bf04 itt eq 800123c: 6819 ldreq r1, [r3, #0] 800123e: 685b ldreq r3, [r3, #4] 8001240: 6063 str r3, [r4, #4] 8001242: bf04 itt eq 8001244: 1949 addeq r1, r1, r5 8001246: 6021 streq r1, [r4, #0] 8001248: 6054 str r4, [r2, #4] 800124a: e7c7 b.n 80011dc <_free_r+0x28> 800124c: b003 add sp, #12 800124e: bd30 pop {r4, r5, pc} 8001250: 20000088 .word 0x20000088 08001254 <_malloc_r>: 8001254: b5f8 push {r3, r4, r5, r6, r7, lr} 8001256: 1ccd adds r5, r1, #3 8001258: f025 0503 bic.w r5, r5, #3 800125c: 3508 adds r5, #8 800125e: 2d0c cmp r5, #12 8001260: bf38 it cc 8001262: 250c movcc r5, #12 8001264: 2d00 cmp r5, #0 8001266: 4606 mov r6, r0 8001268: db01 blt.n 800126e <_malloc_r+0x1a> 800126a: 42a9 cmp r1, r5 800126c: d903 bls.n 8001276 <_malloc_r+0x22> 800126e: 230c movs r3, #12 8001270: 6033 str r3, [r6, #0] 8001272: 2000 movs r0, #0 8001274: bdf8 pop {r3, r4, r5, r6, r7, pc} 8001276: f000 fccb bl 8001c10 <__malloc_lock> 800127a: 4921 ldr r1, [pc, #132] ; (8001300 <_malloc_r+0xac>) 800127c: 680a ldr r2, [r1, #0] 800127e: 4614 mov r4, r2 8001280: b99c cbnz r4, 80012aa <_malloc_r+0x56> 8001282: 4f20 ldr r7, [pc, #128] ; (8001304 <_malloc_r+0xb0>) 8001284: 683b ldr r3, [r7, #0] 8001286: b923 cbnz r3, 8001292 <_malloc_r+0x3e> 8001288: 4621 mov r1, r4 800128a: 4630 mov r0, r6 800128c: f000 fb56 bl 800193c <_sbrk_r> 8001290: 6038 str r0, [r7, #0] 8001292: 4629 mov r1, r5 8001294: 4630 mov r0, r6 8001296: f000 fb51 bl 800193c <_sbrk_r> 800129a: 1c43 adds r3, r0, #1 800129c: d123 bne.n 80012e6 <_malloc_r+0x92> 800129e: 230c movs r3, #12 80012a0: 6033 str r3, [r6, #0] 80012a2: 4630 mov r0, r6 80012a4: f000 fcba bl 8001c1c <__malloc_unlock> 80012a8: e7e3 b.n 8001272 <_malloc_r+0x1e> 80012aa: 6823 ldr r3, [r4, #0] 80012ac: 1b5b subs r3, r3, r5 80012ae: d417 bmi.n 80012e0 <_malloc_r+0x8c> 80012b0: 2b0b cmp r3, #11 80012b2: d903 bls.n 80012bc <_malloc_r+0x68> 80012b4: 6023 str r3, [r4, #0] 80012b6: 441c add r4, r3 80012b8: 6025 str r5, [r4, #0] 80012ba: e004 b.n 80012c6 <_malloc_r+0x72> 80012bc: 6863 ldr r3, [r4, #4] 80012be: 42a2 cmp r2, r4 80012c0: bf0c ite eq 80012c2: 600b streq r3, [r1, #0] 80012c4: 6053 strne r3, [r2, #4] 80012c6: 4630 mov r0, r6 80012c8: f000 fca8 bl 8001c1c <__malloc_unlock> 80012cc: f104 000b add.w r0, r4, #11 80012d0: 1d23 adds r3, r4, #4 80012d2: f020 0007 bic.w r0, r0, #7 80012d6: 1ac2 subs r2, r0, r3 80012d8: d0cc beq.n 8001274 <_malloc_r+0x20> 80012da: 1a1b subs r3, r3, r0 80012dc: 50a3 str r3, [r4, r2] 80012de: e7c9 b.n 8001274 <_malloc_r+0x20> 80012e0: 4622 mov r2, r4 80012e2: 6864 ldr r4, [r4, #4] 80012e4: e7cc b.n 8001280 <_malloc_r+0x2c> 80012e6: 1cc4 adds r4, r0, #3 80012e8: f024 0403 bic.w r4, r4, #3 80012ec: 42a0 cmp r0, r4 80012ee: d0e3 beq.n 80012b8 <_malloc_r+0x64> 80012f0: 1a21 subs r1, r4, r0 80012f2: 4630 mov r0, r6 80012f4: f000 fb22 bl 800193c <_sbrk_r> 80012f8: 3001 adds r0, #1 80012fa: d1dd bne.n 80012b8 <_malloc_r+0x64> 80012fc: e7cf b.n 800129e <_malloc_r+0x4a> 80012fe: bf00 nop 8001300: 20000088 .word 0x20000088 8001304: 2000008c .word 0x2000008c 08001308 <__sfputc_r>: 8001308: 6893 ldr r3, [r2, #8] 800130a: 3b01 subs r3, #1 800130c: 2b00 cmp r3, #0 800130e: b410 push {r4} 8001310: 6093 str r3, [r2, #8] 8001312: da08 bge.n 8001326 <__sfputc_r+0x1e> 8001314: 6994 ldr r4, [r2, #24] 8001316: 42a3 cmp r3, r4 8001318: db01 blt.n 800131e <__sfputc_r+0x16> 800131a: 290a cmp r1, #10 800131c: d103 bne.n 8001326 <__sfputc_r+0x1e> 800131e: f85d 4b04 ldr.w r4, [sp], #4 8001322: f000 bb5f b.w 80019e4 <__swbuf_r> 8001326: 6813 ldr r3, [r2, #0] 8001328: 1c58 adds r0, r3, #1 800132a: 6010 str r0, [r2, #0] 800132c: 7019 strb r1, [r3, #0] 800132e: 4608 mov r0, r1 8001330: f85d 4b04 ldr.w r4, [sp], #4 8001334: 4770 bx lr 08001336 <__sfputs_r>: 8001336: b5f8 push {r3, r4, r5, r6, r7, lr} 8001338: 4606 mov r6, r0 800133a: 460f mov r7, r1 800133c: 4614 mov r4, r2 800133e: 18d5 adds r5, r2, r3 8001340: 42ac cmp r4, r5 8001342: d101 bne.n 8001348 <__sfputs_r+0x12> 8001344: 2000 movs r0, #0 8001346: e007 b.n 8001358 <__sfputs_r+0x22> 8001348: f814 1b01 ldrb.w r1, [r4], #1 800134c: 463a mov r2, r7 800134e: 4630 mov r0, r6 8001350: f7ff ffda bl 8001308 <__sfputc_r> 8001354: 1c43 adds r3, r0, #1 8001356: d1f3 bne.n 8001340 <__sfputs_r+0xa> 8001358: bdf8 pop {r3, r4, r5, r6, r7, pc} ... 0800135c <_vfiprintf_r>: 800135c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 8001360: 460d mov r5, r1 8001362: b09d sub sp, #116 ; 0x74 8001364: 4614 mov r4, r2 8001366: 4698 mov r8, r3 8001368: 4606 mov r6, r0 800136a: b118 cbz r0, 8001374 <_vfiprintf_r+0x18> 800136c: 6983 ldr r3, [r0, #24] 800136e: b90b cbnz r3, 8001374 <_vfiprintf_r+0x18> 8001370: f7ff fdb6 bl 8000ee0 <__sinit> 8001374: 4b89 ldr r3, [pc, #548] ; (800159c <_vfiprintf_r+0x240>) 8001376: 429d cmp r5, r3 8001378: d11b bne.n 80013b2 <_vfiprintf_r+0x56> 800137a: 6875 ldr r5, [r6, #4] 800137c: 6e6b ldr r3, [r5, #100] ; 0x64 800137e: 07d9 lsls r1, r3, #31 8001380: d405 bmi.n 800138e <_vfiprintf_r+0x32> 8001382: 89ab ldrh r3, [r5, #12] 8001384: 059a lsls r2, r3, #22 8001386: d402 bmi.n 800138e <_vfiprintf_r+0x32> 8001388: 6da8 ldr r0, [r5, #88] ; 0x58 800138a: f7ff fea4 bl 80010d6 <__retarget_lock_acquire_recursive> 800138e: 89ab ldrh r3, [r5, #12] 8001390: 071b lsls r3, r3, #28 8001392: d501 bpl.n 8001398 <_vfiprintf_r+0x3c> 8001394: 692b ldr r3, [r5, #16] 8001396: b9eb cbnz r3, 80013d4 <_vfiprintf_r+0x78> 8001398: 4629 mov r1, r5 800139a: 4630 mov r0, r6 800139c: f000 fb86 bl 8001aac <__swsetup_r> 80013a0: b1c0 cbz r0, 80013d4 <_vfiprintf_r+0x78> 80013a2: 6e6b ldr r3, [r5, #100] ; 0x64 80013a4: 07dc lsls r4, r3, #31 80013a6: d50e bpl.n 80013c6 <_vfiprintf_r+0x6a> 80013a8: f04f 30ff mov.w r0, #4294967295 80013ac: b01d add sp, #116 ; 0x74 80013ae: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 80013b2: 4b7b ldr r3, [pc, #492] ; (80015a0 <_vfiprintf_r+0x244>) 80013b4: 429d cmp r5, r3 80013b6: d101 bne.n 80013bc <_vfiprintf_r+0x60> 80013b8: 68b5 ldr r5, [r6, #8] 80013ba: e7df b.n 800137c <_vfiprintf_r+0x20> 80013bc: 4b79 ldr r3, [pc, #484] ; (80015a4 <_vfiprintf_r+0x248>) 80013be: 429d cmp r5, r3 80013c0: bf08 it eq 80013c2: 68f5 ldreq r5, [r6, #12] 80013c4: e7da b.n 800137c <_vfiprintf_r+0x20> 80013c6: 89ab ldrh r3, [r5, #12] 80013c8: 0598 lsls r0, r3, #22 80013ca: d4ed bmi.n 80013a8 <_vfiprintf_r+0x4c> 80013cc: 6da8 ldr r0, [r5, #88] ; 0x58 80013ce: f7ff fe83 bl 80010d8 <__retarget_lock_release_recursive> 80013d2: e7e9 b.n 80013a8 <_vfiprintf_r+0x4c> 80013d4: 2300 movs r3, #0 80013d6: 9309 str r3, [sp, #36] ; 0x24 80013d8: 2320 movs r3, #32 80013da: f88d 3029 strb.w r3, [sp, #41] ; 0x29 80013de: f8cd 800c str.w r8, [sp, #12] 80013e2: 2330 movs r3, #48 ; 0x30 80013e4: f8df 81c0 ldr.w r8, [pc, #448] ; 80015a8 <_vfiprintf_r+0x24c> 80013e8: f88d 302a strb.w r3, [sp, #42] ; 0x2a 80013ec: f04f 0901 mov.w r9, #1 80013f0: 4623 mov r3, r4 80013f2: 469a mov sl, r3 80013f4: f813 2b01 ldrb.w r2, [r3], #1 80013f8: b10a cbz r2, 80013fe <_vfiprintf_r+0xa2> 80013fa: 2a25 cmp r2, #37 ; 0x25 80013fc: d1f9 bne.n 80013f2 <_vfiprintf_r+0x96> 80013fe: ebba 0b04 subs.w fp, sl, r4 8001402: d00b beq.n 800141c <_vfiprintf_r+0xc0> 8001404: 465b mov r3, fp 8001406: 4622 mov r2, r4 8001408: 4629 mov r1, r5 800140a: 4630 mov r0, r6 800140c: f7ff ff93 bl 8001336 <__sfputs_r> 8001410: 3001 adds r0, #1 8001412: f000 80aa beq.w 800156a <_vfiprintf_r+0x20e> 8001416: 9a09 ldr r2, [sp, #36] ; 0x24 8001418: 445a add r2, fp 800141a: 9209 str r2, [sp, #36] ; 0x24 800141c: f89a 3000 ldrb.w r3, [sl] 8001420: 2b00 cmp r3, #0 8001422: f000 80a2 beq.w 800156a <_vfiprintf_r+0x20e> 8001426: 2300 movs r3, #0 8001428: f04f 32ff mov.w r2, #4294967295 800142c: e9cd 2305 strd r2, r3, [sp, #20] 8001430: f10a 0a01 add.w sl, sl, #1 8001434: 9304 str r3, [sp, #16] 8001436: 9307 str r3, [sp, #28] 8001438: f88d 3053 strb.w r3, [sp, #83] ; 0x53 800143c: 931a str r3, [sp, #104] ; 0x68 800143e: 4654 mov r4, sl 8001440: 2205 movs r2, #5 8001442: f814 1b01 ldrb.w r1, [r4], #1 8001446: 4858 ldr r0, [pc, #352] ; (80015a8 <_vfiprintf_r+0x24c>) 8001448: f7fe fee2 bl 8000210 800144c: 9a04 ldr r2, [sp, #16] 800144e: b9d8 cbnz r0, 8001488 <_vfiprintf_r+0x12c> 8001450: 06d1 lsls r1, r2, #27 8001452: bf44 itt mi 8001454: 2320 movmi r3, #32 8001456: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 800145a: 0713 lsls r3, r2, #28 800145c: bf44 itt mi 800145e: 232b movmi r3, #43 ; 0x2b 8001460: f88d 3053 strbmi.w r3, [sp, #83] ; 0x53 8001464: f89a 3000 ldrb.w r3, [sl] 8001468: 2b2a cmp r3, #42 ; 0x2a 800146a: d015 beq.n 8001498 <_vfiprintf_r+0x13c> 800146c: 9a07 ldr r2, [sp, #28] 800146e: 4654 mov r4, sl 8001470: 2000 movs r0, #0 8001472: f04f 0c0a mov.w ip, #10 8001476: 4621 mov r1, r4 8001478: f811 3b01 ldrb.w r3, [r1], #1 800147c: 3b30 subs r3, #48 ; 0x30 800147e: 2b09 cmp r3, #9 8001480: d94e bls.n 8001520 <_vfiprintf_r+0x1c4> 8001482: b1b0 cbz r0, 80014b2 <_vfiprintf_r+0x156> 8001484: 9207 str r2, [sp, #28] 8001486: e014 b.n 80014b2 <_vfiprintf_r+0x156> 8001488: eba0 0308 sub.w r3, r0, r8 800148c: fa09 f303 lsl.w r3, r9, r3 8001490: 4313 orrs r3, r2 8001492: 9304 str r3, [sp, #16] 8001494: 46a2 mov sl, r4 8001496: e7d2 b.n 800143e <_vfiprintf_r+0xe2> 8001498: 9b03 ldr r3, [sp, #12] 800149a: 1d19 adds r1, r3, #4 800149c: 681b ldr r3, [r3, #0] 800149e: 9103 str r1, [sp, #12] 80014a0: 2b00 cmp r3, #0 80014a2: bfbb ittet lt 80014a4: 425b neglt r3, r3 80014a6: f042 0202 orrlt.w r2, r2, #2 80014aa: 9307 strge r3, [sp, #28] 80014ac: 9307 strlt r3, [sp, #28] 80014ae: bfb8 it lt 80014b0: 9204 strlt r2, [sp, #16] 80014b2: 7823 ldrb r3, [r4, #0] 80014b4: 2b2e cmp r3, #46 ; 0x2e 80014b6: d10c bne.n 80014d2 <_vfiprintf_r+0x176> 80014b8: 7863 ldrb r3, [r4, #1] 80014ba: 2b2a cmp r3, #42 ; 0x2a 80014bc: d135 bne.n 800152a <_vfiprintf_r+0x1ce> 80014be: 9b03 ldr r3, [sp, #12] 80014c0: 1d1a adds r2, r3, #4 80014c2: 681b ldr r3, [r3, #0] 80014c4: 9203 str r2, [sp, #12] 80014c6: 2b00 cmp r3, #0 80014c8: bfb8 it lt 80014ca: f04f 33ff movlt.w r3, #4294967295 80014ce: 3402 adds r4, #2 80014d0: 9305 str r3, [sp, #20] 80014d2: f8df a0e4 ldr.w sl, [pc, #228] ; 80015b8 <_vfiprintf_r+0x25c> 80014d6: 7821 ldrb r1, [r4, #0] 80014d8: 2203 movs r2, #3 80014da: 4650 mov r0, sl 80014dc: f7fe fe98 bl 8000210 80014e0: b140 cbz r0, 80014f4 <_vfiprintf_r+0x198> 80014e2: 2340 movs r3, #64 ; 0x40 80014e4: eba0 000a sub.w r0, r0, sl 80014e8: fa03 f000 lsl.w r0, r3, r0 80014ec: 9b04 ldr r3, [sp, #16] 80014ee: 4303 orrs r3, r0 80014f0: 3401 adds r4, #1 80014f2: 9304 str r3, [sp, #16] 80014f4: f814 1b01 ldrb.w r1, [r4], #1 80014f8: 482c ldr r0, [pc, #176] ; (80015ac <_vfiprintf_r+0x250>) 80014fa: f88d 1028 strb.w r1, [sp, #40] ; 0x28 80014fe: 2206 movs r2, #6 8001500: f7fe fe86 bl 8000210 8001504: 2800 cmp r0, #0 8001506: d03f beq.n 8001588 <_vfiprintf_r+0x22c> 8001508: 4b29 ldr r3, [pc, #164] ; (80015b0 <_vfiprintf_r+0x254>) 800150a: bb1b cbnz r3, 8001554 <_vfiprintf_r+0x1f8> 800150c: 9b03 ldr r3, [sp, #12] 800150e: 3307 adds r3, #7 8001510: f023 0307 bic.w r3, r3, #7 8001514: 3308 adds r3, #8 8001516: 9303 str r3, [sp, #12] 8001518: 9b09 ldr r3, [sp, #36] ; 0x24 800151a: 443b add r3, r7 800151c: 9309 str r3, [sp, #36] ; 0x24 800151e: e767 b.n 80013f0 <_vfiprintf_r+0x94> 8001520: fb0c 3202 mla r2, ip, r2, r3 8001524: 460c mov r4, r1 8001526: 2001 movs r0, #1 8001528: e7a5 b.n 8001476 <_vfiprintf_r+0x11a> 800152a: 2300 movs r3, #0 800152c: 3401 adds r4, #1 800152e: 9305 str r3, [sp, #20] 8001530: 4619 mov r1, r3 8001532: f04f 0c0a mov.w ip, #10 8001536: 4620 mov r0, r4 8001538: f810 2b01 ldrb.w r2, [r0], #1 800153c: 3a30 subs r2, #48 ; 0x30 800153e: 2a09 cmp r2, #9 8001540: d903 bls.n 800154a <_vfiprintf_r+0x1ee> 8001542: 2b00 cmp r3, #0 8001544: d0c5 beq.n 80014d2 <_vfiprintf_r+0x176> 8001546: 9105 str r1, [sp, #20] 8001548: e7c3 b.n 80014d2 <_vfiprintf_r+0x176> 800154a: fb0c 2101 mla r1, ip, r1, r2 800154e: 4604 mov r4, r0 8001550: 2301 movs r3, #1 8001552: e7f0 b.n 8001536 <_vfiprintf_r+0x1da> 8001554: ab03 add r3, sp, #12 8001556: 9300 str r3, [sp, #0] 8001558: 462a mov r2, r5 800155a: 4b16 ldr r3, [pc, #88] ; (80015b4 <_vfiprintf_r+0x258>) 800155c: a904 add r1, sp, #16 800155e: 4630 mov r0, r6 8001560: f3af 8000 nop.w 8001564: 4607 mov r7, r0 8001566: 1c78 adds r0, r7, #1 8001568: d1d6 bne.n 8001518 <_vfiprintf_r+0x1bc> 800156a: 6e6b ldr r3, [r5, #100] ; 0x64 800156c: 07d9 lsls r1, r3, #31 800156e: d405 bmi.n 800157c <_vfiprintf_r+0x220> 8001570: 89ab ldrh r3, [r5, #12] 8001572: 059a lsls r2, r3, #22 8001574: d402 bmi.n 800157c <_vfiprintf_r+0x220> 8001576: 6da8 ldr r0, [r5, #88] ; 0x58 8001578: f7ff fdae bl 80010d8 <__retarget_lock_release_recursive> 800157c: 89ab ldrh r3, [r5, #12] 800157e: 065b lsls r3, r3, #25 8001580: f53f af12 bmi.w 80013a8 <_vfiprintf_r+0x4c> 8001584: 9809 ldr r0, [sp, #36] ; 0x24 8001586: e711 b.n 80013ac <_vfiprintf_r+0x50> 8001588: ab03 add r3, sp, #12 800158a: 9300 str r3, [sp, #0] 800158c: 462a mov r2, r5 800158e: 4b09 ldr r3, [pc, #36] ; (80015b4 <_vfiprintf_r+0x258>) 8001590: a904 add r1, sp, #16 8001592: 4630 mov r0, r6 8001594: f000 f880 bl 8001698 <_printf_i> 8001598: e7e4 b.n 8001564 <_vfiprintf_r+0x208> 800159a: bf00 nop 800159c: 08001f44 .word 0x08001f44 80015a0: 08001f64 .word 0x08001f64 80015a4: 08001f24 .word 0x08001f24 80015a8: 08001f84 .word 0x08001f84 80015ac: 08001f8e .word 0x08001f8e 80015b0: 00000000 .word 0x00000000 80015b4: 08001337 .word 0x08001337 80015b8: 08001f8a .word 0x08001f8a 080015bc <_printf_common>: 80015bc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 80015c0: 4616 mov r6, r2 80015c2: 4699 mov r9, r3 80015c4: 688a ldr r2, [r1, #8] 80015c6: 690b ldr r3, [r1, #16] 80015c8: f8dd 8020 ldr.w r8, [sp, #32] 80015cc: 4293 cmp r3, r2 80015ce: bfb8 it lt 80015d0: 4613 movlt r3, r2 80015d2: 6033 str r3, [r6, #0] 80015d4: f891 2043 ldrb.w r2, [r1, #67] ; 0x43 80015d8: 4607 mov r7, r0 80015da: 460c mov r4, r1 80015dc: b10a cbz r2, 80015e2 <_printf_common+0x26> 80015de: 3301 adds r3, #1 80015e0: 6033 str r3, [r6, #0] 80015e2: 6823 ldr r3, [r4, #0] 80015e4: 0699 lsls r1, r3, #26 80015e6: bf42 ittt mi 80015e8: 6833 ldrmi r3, [r6, #0] 80015ea: 3302 addmi r3, #2 80015ec: 6033 strmi r3, [r6, #0] 80015ee: 6825 ldr r5, [r4, #0] 80015f0: f015 0506 ands.w r5, r5, #6 80015f4: d106 bne.n 8001604 <_printf_common+0x48> 80015f6: f104 0a19 add.w sl, r4, #25 80015fa: 68e3 ldr r3, [r4, #12] 80015fc: 6832 ldr r2, [r6, #0] 80015fe: 1a9b subs r3, r3, r2 8001600: 42ab cmp r3, r5 8001602: dc26 bgt.n 8001652 <_printf_common+0x96> 8001604: f894 2043 ldrb.w r2, [r4, #67] ; 0x43 8001608: 1e13 subs r3, r2, #0 800160a: 6822 ldr r2, [r4, #0] 800160c: bf18 it ne 800160e: 2301 movne r3, #1 8001610: 0692 lsls r2, r2, #26 8001612: d42b bmi.n 800166c <_printf_common+0xb0> 8001614: f104 0243 add.w r2, r4, #67 ; 0x43 8001618: 4649 mov r1, r9 800161a: 4638 mov r0, r7 800161c: 47c0 blx r8 800161e: 3001 adds r0, #1 8001620: d01e beq.n 8001660 <_printf_common+0xa4> 8001622: 6823 ldr r3, [r4, #0] 8001624: 68e5 ldr r5, [r4, #12] 8001626: 6832 ldr r2, [r6, #0] 8001628: f003 0306 and.w r3, r3, #6 800162c: 2b04 cmp r3, #4 800162e: bf08 it eq 8001630: 1aad subeq r5, r5, r2 8001632: 68a3 ldr r3, [r4, #8] 8001634: 6922 ldr r2, [r4, #16] 8001636: bf0c ite eq 8001638: ea25 75e5 biceq.w r5, r5, r5, asr #31 800163c: 2500 movne r5, #0 800163e: 4293 cmp r3, r2 8001640: bfc4 itt gt 8001642: 1a9b subgt r3, r3, r2 8001644: 18ed addgt r5, r5, r3 8001646: 2600 movs r6, #0 8001648: 341a adds r4, #26 800164a: 42b5 cmp r5, r6 800164c: d11a bne.n 8001684 <_printf_common+0xc8> 800164e: 2000 movs r0, #0 8001650: e008 b.n 8001664 <_printf_common+0xa8> 8001652: 2301 movs r3, #1 8001654: 4652 mov r2, sl 8001656: 4649 mov r1, r9 8001658: 4638 mov r0, r7 800165a: 47c0 blx r8 800165c: 3001 adds r0, #1 800165e: d103 bne.n 8001668 <_printf_common+0xac> 8001660: f04f 30ff mov.w r0, #4294967295 8001664: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 8001668: 3501 adds r5, #1 800166a: e7c6 b.n 80015fa <_printf_common+0x3e> 800166c: 18e1 adds r1, r4, r3 800166e: 1c5a adds r2, r3, #1 8001670: 2030 movs r0, #48 ; 0x30 8001672: f881 0043 strb.w r0, [r1, #67] ; 0x43 8001676: 4422 add r2, r4 8001678: f894 1045 ldrb.w r1, [r4, #69] ; 0x45 800167c: f882 1043 strb.w r1, [r2, #67] ; 0x43 8001680: 3302 adds r3, #2 8001682: e7c7 b.n 8001614 <_printf_common+0x58> 8001684: 2301 movs r3, #1 8001686: 4622 mov r2, r4 8001688: 4649 mov r1, r9 800168a: 4638 mov r0, r7 800168c: 47c0 blx r8 800168e: 3001 adds r0, #1 8001690: d0e6 beq.n 8001660 <_printf_common+0xa4> 8001692: 3601 adds r6, #1 8001694: e7d9 b.n 800164a <_printf_common+0x8e> ... 08001698 <_printf_i>: 8001698: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} 800169c: 460c mov r4, r1 800169e: 4691 mov r9, r2 80016a0: 7e27 ldrb r7, [r4, #24] 80016a2: 990c ldr r1, [sp, #48] ; 0x30 80016a4: 2f78 cmp r7, #120 ; 0x78 80016a6: 4680 mov r8, r0 80016a8: 469a mov sl, r3 80016aa: f104 0243 add.w r2, r4, #67 ; 0x43 80016ae: d807 bhi.n 80016c0 <_printf_i+0x28> 80016b0: 2f62 cmp r7, #98 ; 0x62 80016b2: d80a bhi.n 80016ca <_printf_i+0x32> 80016b4: 2f00 cmp r7, #0 80016b6: f000 80d8 beq.w 800186a <_printf_i+0x1d2> 80016ba: 2f58 cmp r7, #88 ; 0x58 80016bc: f000 80a3 beq.w 8001806 <_printf_i+0x16e> 80016c0: f104 0642 add.w r6, r4, #66 ; 0x42 80016c4: f884 7042 strb.w r7, [r4, #66] ; 0x42 80016c8: e03a b.n 8001740 <_printf_i+0xa8> 80016ca: f1a7 0363 sub.w r3, r7, #99 ; 0x63 80016ce: 2b15 cmp r3, #21 80016d0: d8f6 bhi.n 80016c0 <_printf_i+0x28> 80016d2: a001 add r0, pc, #4 ; (adr r0, 80016d8 <_printf_i+0x40>) 80016d4: f850 f023 ldr.w pc, [r0, r3, lsl #2] 80016d8: 08001731 .word 0x08001731 80016dc: 08001745 .word 0x08001745 80016e0: 080016c1 .word 0x080016c1 80016e4: 080016c1 .word 0x080016c1 80016e8: 080016c1 .word 0x080016c1 80016ec: 080016c1 .word 0x080016c1 80016f0: 08001745 .word 0x08001745 80016f4: 080016c1 .word 0x080016c1 80016f8: 080016c1 .word 0x080016c1 80016fc: 080016c1 .word 0x080016c1 8001700: 080016c1 .word 0x080016c1 8001704: 08001851 .word 0x08001851 8001708: 08001775 .word 0x08001775 800170c: 08001833 .word 0x08001833 8001710: 080016c1 .word 0x080016c1 8001714: 080016c1 .word 0x080016c1 8001718: 08001873 .word 0x08001873 800171c: 080016c1 .word 0x080016c1 8001720: 08001775 .word 0x08001775 8001724: 080016c1 .word 0x080016c1 8001728: 080016c1 .word 0x080016c1 800172c: 0800183b .word 0x0800183b 8001730: 680b ldr r3, [r1, #0] 8001732: 1d1a adds r2, r3, #4 8001734: 681b ldr r3, [r3, #0] 8001736: 600a str r2, [r1, #0] 8001738: f104 0642 add.w r6, r4, #66 ; 0x42 800173c: f884 3042 strb.w r3, [r4, #66] ; 0x42 8001740: 2301 movs r3, #1 8001742: e0a3 b.n 800188c <_printf_i+0x1f4> 8001744: 6825 ldr r5, [r4, #0] 8001746: 6808 ldr r0, [r1, #0] 8001748: 062e lsls r6, r5, #24 800174a: f100 0304 add.w r3, r0, #4 800174e: d50a bpl.n 8001766 <_printf_i+0xce> 8001750: 6805 ldr r5, [r0, #0] 8001752: 600b str r3, [r1, #0] 8001754: 2d00 cmp r5, #0 8001756: da03 bge.n 8001760 <_printf_i+0xc8> 8001758: 232d movs r3, #45 ; 0x2d 800175a: 426d negs r5, r5 800175c: f884 3043 strb.w r3, [r4, #67] ; 0x43 8001760: 485e ldr r0, [pc, #376] ; (80018dc <_printf_i+0x244>) 8001762: 230a movs r3, #10 8001764: e019 b.n 800179a <_printf_i+0x102> 8001766: f015 0f40 tst.w r5, #64 ; 0x40 800176a: 6805 ldr r5, [r0, #0] 800176c: 600b str r3, [r1, #0] 800176e: bf18 it ne 8001770: b22d sxthne r5, r5 8001772: e7ef b.n 8001754 <_printf_i+0xbc> 8001774: 680b ldr r3, [r1, #0] 8001776: 6825 ldr r5, [r4, #0] 8001778: 1d18 adds r0, r3, #4 800177a: 6008 str r0, [r1, #0] 800177c: 0628 lsls r0, r5, #24 800177e: d501 bpl.n 8001784 <_printf_i+0xec> 8001780: 681d ldr r5, [r3, #0] 8001782: e002 b.n 800178a <_printf_i+0xf2> 8001784: 0669 lsls r1, r5, #25 8001786: d5fb bpl.n 8001780 <_printf_i+0xe8> 8001788: 881d ldrh r5, [r3, #0] 800178a: 4854 ldr r0, [pc, #336] ; (80018dc <_printf_i+0x244>) 800178c: 2f6f cmp r7, #111 ; 0x6f 800178e: bf0c ite eq 8001790: 2308 moveq r3, #8 8001792: 230a movne r3, #10 8001794: 2100 movs r1, #0 8001796: f884 1043 strb.w r1, [r4, #67] ; 0x43 800179a: 6866 ldr r6, [r4, #4] 800179c: 60a6 str r6, [r4, #8] 800179e: 2e00 cmp r6, #0 80017a0: bfa2 ittt ge 80017a2: 6821 ldrge r1, [r4, #0] 80017a4: f021 0104 bicge.w r1, r1, #4 80017a8: 6021 strge r1, [r4, #0] 80017aa: b90d cbnz r5, 80017b0 <_printf_i+0x118> 80017ac: 2e00 cmp r6, #0 80017ae: d04d beq.n 800184c <_printf_i+0x1b4> 80017b0: 4616 mov r6, r2 80017b2: fbb5 f1f3 udiv r1, r5, r3 80017b6: fb03 5711 mls r7, r3, r1, r5 80017ba: 5dc7 ldrb r7, [r0, r7] 80017bc: f806 7d01 strb.w r7, [r6, #-1]! 80017c0: 462f mov r7, r5 80017c2: 42bb cmp r3, r7 80017c4: 460d mov r5, r1 80017c6: d9f4 bls.n 80017b2 <_printf_i+0x11a> 80017c8: 2b08 cmp r3, #8 80017ca: d10b bne.n 80017e4 <_printf_i+0x14c> 80017cc: 6823 ldr r3, [r4, #0] 80017ce: 07df lsls r7, r3, #31 80017d0: d508 bpl.n 80017e4 <_printf_i+0x14c> 80017d2: 6923 ldr r3, [r4, #16] 80017d4: 6861 ldr r1, [r4, #4] 80017d6: 4299 cmp r1, r3 80017d8: bfde ittt le 80017da: 2330 movle r3, #48 ; 0x30 80017dc: f806 3c01 strble.w r3, [r6, #-1] 80017e0: f106 36ff addle.w r6, r6, #4294967295 80017e4: 1b92 subs r2, r2, r6 80017e6: 6122 str r2, [r4, #16] 80017e8: f8cd a000 str.w sl, [sp] 80017ec: 464b mov r3, r9 80017ee: aa03 add r2, sp, #12 80017f0: 4621 mov r1, r4 80017f2: 4640 mov r0, r8 80017f4: f7ff fee2 bl 80015bc <_printf_common> 80017f8: 3001 adds r0, #1 80017fa: d14c bne.n 8001896 <_printf_i+0x1fe> 80017fc: f04f 30ff mov.w r0, #4294967295 8001800: b004 add sp, #16 8001802: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 8001806: 4835 ldr r0, [pc, #212] ; (80018dc <_printf_i+0x244>) 8001808: f884 7045 strb.w r7, [r4, #69] ; 0x45 800180c: 6823 ldr r3, [r4, #0] 800180e: 680e ldr r6, [r1, #0] 8001810: 061f lsls r7, r3, #24 8001812: f856 5b04 ldr.w r5, [r6], #4 8001816: 600e str r6, [r1, #0] 8001818: d514 bpl.n 8001844 <_printf_i+0x1ac> 800181a: 07d9 lsls r1, r3, #31 800181c: bf44 itt mi 800181e: f043 0320 orrmi.w r3, r3, #32 8001822: 6023 strmi r3, [r4, #0] 8001824: b91d cbnz r5, 800182e <_printf_i+0x196> 8001826: 6823 ldr r3, [r4, #0] 8001828: f023 0320 bic.w r3, r3, #32 800182c: 6023 str r3, [r4, #0] 800182e: 2310 movs r3, #16 8001830: e7b0 b.n 8001794 <_printf_i+0xfc> 8001832: 6823 ldr r3, [r4, #0] 8001834: f043 0320 orr.w r3, r3, #32 8001838: 6023 str r3, [r4, #0] 800183a: 2378 movs r3, #120 ; 0x78 800183c: 4828 ldr r0, [pc, #160] ; (80018e0 <_printf_i+0x248>) 800183e: f884 3045 strb.w r3, [r4, #69] ; 0x45 8001842: e7e3 b.n 800180c <_printf_i+0x174> 8001844: 065e lsls r6, r3, #25 8001846: bf48 it mi 8001848: b2ad uxthmi r5, r5 800184a: e7e6 b.n 800181a <_printf_i+0x182> 800184c: 4616 mov r6, r2 800184e: e7bb b.n 80017c8 <_printf_i+0x130> 8001850: 680b ldr r3, [r1, #0] 8001852: 6826 ldr r6, [r4, #0] 8001854: 6960 ldr r0, [r4, #20] 8001856: 1d1d adds r5, r3, #4 8001858: 600d str r5, [r1, #0] 800185a: 0635 lsls r5, r6, #24 800185c: 681b ldr r3, [r3, #0] 800185e: d501 bpl.n 8001864 <_printf_i+0x1cc> 8001860: 6018 str r0, [r3, #0] 8001862: e002 b.n 800186a <_printf_i+0x1d2> 8001864: 0671 lsls r1, r6, #25 8001866: d5fb bpl.n 8001860 <_printf_i+0x1c8> 8001868: 8018 strh r0, [r3, #0] 800186a: 2300 movs r3, #0 800186c: 6123 str r3, [r4, #16] 800186e: 4616 mov r6, r2 8001870: e7ba b.n 80017e8 <_printf_i+0x150> 8001872: 680b ldr r3, [r1, #0] 8001874: 1d1a adds r2, r3, #4 8001876: 600a str r2, [r1, #0] 8001878: 681e ldr r6, [r3, #0] 800187a: 6862 ldr r2, [r4, #4] 800187c: 2100 movs r1, #0 800187e: 4630 mov r0, r6 8001880: f7fe fcc6 bl 8000210 8001884: b108 cbz r0, 800188a <_printf_i+0x1f2> 8001886: 1b80 subs r0, r0, r6 8001888: 6060 str r0, [r4, #4] 800188a: 6863 ldr r3, [r4, #4] 800188c: 6123 str r3, [r4, #16] 800188e: 2300 movs r3, #0 8001890: f884 3043 strb.w r3, [r4, #67] ; 0x43 8001894: e7a8 b.n 80017e8 <_printf_i+0x150> 8001896: 6923 ldr r3, [r4, #16] 8001898: 4632 mov r2, r6 800189a: 4649 mov r1, r9 800189c: 4640 mov r0, r8 800189e: 47d0 blx sl 80018a0: 3001 adds r0, #1 80018a2: d0ab beq.n 80017fc <_printf_i+0x164> 80018a4: 6823 ldr r3, [r4, #0] 80018a6: 079b lsls r3, r3, #30 80018a8: d413 bmi.n 80018d2 <_printf_i+0x23a> 80018aa: 68e0 ldr r0, [r4, #12] 80018ac: 9b03 ldr r3, [sp, #12] 80018ae: 4298 cmp r0, r3 80018b0: bfb8 it lt 80018b2: 4618 movlt r0, r3 80018b4: e7a4 b.n 8001800 <_printf_i+0x168> 80018b6: 2301 movs r3, #1 80018b8: 4632 mov r2, r6 80018ba: 4649 mov r1, r9 80018bc: 4640 mov r0, r8 80018be: 47d0 blx sl 80018c0: 3001 adds r0, #1 80018c2: d09b beq.n 80017fc <_printf_i+0x164> 80018c4: 3501 adds r5, #1 80018c6: 68e3 ldr r3, [r4, #12] 80018c8: 9903 ldr r1, [sp, #12] 80018ca: 1a5b subs r3, r3, r1 80018cc: 42ab cmp r3, r5 80018ce: dcf2 bgt.n 80018b6 <_printf_i+0x21e> 80018d0: e7eb b.n 80018aa <_printf_i+0x212> 80018d2: 2500 movs r5, #0 80018d4: f104 0619 add.w r6, r4, #25 80018d8: e7f5 b.n 80018c6 <_printf_i+0x22e> 80018da: bf00 nop 80018dc: 08001f95 .word 0x08001f95 80018e0: 08001fa6 .word 0x08001fa6 080018e4 <__srget_r>: 80018e4: b538 push {r3, r4, r5, lr} 80018e6: 460c mov r4, r1 80018e8: 4605 mov r5, r0 80018ea: b118 cbz r0, 80018f4 <__srget_r+0x10> 80018ec: 6983 ldr r3, [r0, #24] 80018ee: b90b cbnz r3, 80018f4 <__srget_r+0x10> 80018f0: f7ff faf6 bl 8000ee0 <__sinit> 80018f4: 4b0e ldr r3, [pc, #56] ; (8001930 <__srget_r+0x4c>) 80018f6: 429c cmp r4, r3 80018f8: d10d bne.n 8001916 <__srget_r+0x32> 80018fa: 686c ldr r4, [r5, #4] 80018fc: 4621 mov r1, r4 80018fe: 4628 mov r0, r5 8001900: f000 f9ae bl 8001c60 <__srefill_r> 8001904: b988 cbnz r0, 800192a <__srget_r+0x46> 8001906: 6863 ldr r3, [r4, #4] 8001908: 3b01 subs r3, #1 800190a: 6063 str r3, [r4, #4] 800190c: 6823 ldr r3, [r4, #0] 800190e: 1c5a adds r2, r3, #1 8001910: 6022 str r2, [r4, #0] 8001912: 7818 ldrb r0, [r3, #0] 8001914: bd38 pop {r3, r4, r5, pc} 8001916: 4b07 ldr r3, [pc, #28] ; (8001934 <__srget_r+0x50>) 8001918: 429c cmp r4, r3 800191a: d101 bne.n 8001920 <__srget_r+0x3c> 800191c: 68ac ldr r4, [r5, #8] 800191e: e7ed b.n 80018fc <__srget_r+0x18> 8001920: 4b05 ldr r3, [pc, #20] ; (8001938 <__srget_r+0x54>) 8001922: 429c cmp r4, r3 8001924: bf08 it eq 8001926: 68ec ldreq r4, [r5, #12] 8001928: e7e8 b.n 80018fc <__srget_r+0x18> 800192a: f04f 30ff mov.w r0, #4294967295 800192e: e7f1 b.n 8001914 <__srget_r+0x30> 8001930: 08001f44 .word 0x08001f44 8001934: 08001f64 .word 0x08001f64 8001938: 08001f24 .word 0x08001f24 0800193c <_sbrk_r>: 800193c: b538 push {r3, r4, r5, lr} 800193e: 4d06 ldr r5, [pc, #24] ; (8001958 <_sbrk_r+0x1c>) 8001940: 2300 movs r3, #0 8001942: 4604 mov r4, r0 8001944: 4608 mov r0, r1 8001946: 602b str r3, [r5, #0] 8001948: f7fe ff4c bl 80007e4 <_sbrk> 800194c: 1c43 adds r3, r0, #1 800194e: d102 bne.n 8001956 <_sbrk_r+0x1a> 8001950: 682b ldr r3, [r5, #0] 8001952: b103 cbz r3, 8001956 <_sbrk_r+0x1a> 8001954: 6023 str r3, [r4, #0] 8001956: bd38 pop {r3, r4, r5, pc} 8001958: 2000009c .word 0x2000009c 0800195c <__sread>: 800195c: b510 push {r4, lr} 800195e: 460c mov r4, r1 8001960: f9b1 100e ldrsh.w r1, [r1, #14] 8001964: f000 f960 bl 8001c28 <_read_r> 8001968: 2800 cmp r0, #0 800196a: bfab itete ge 800196c: 6d63 ldrge r3, [r4, #84] ; 0x54 800196e: 89a3 ldrhlt r3, [r4, #12] 8001970: 181b addge r3, r3, r0 8001972: f423 5380 biclt.w r3, r3, #4096 ; 0x1000 8001976: bfac ite ge 8001978: 6563 strge r3, [r4, #84] ; 0x54 800197a: 81a3 strhlt r3, [r4, #12] 800197c: bd10 pop {r4, pc} 0800197e <__swrite>: 800197e: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 8001982: 461f mov r7, r3 8001984: 898b ldrh r3, [r1, #12] 8001986: 05db lsls r3, r3, #23 8001988: 4605 mov r5, r0 800198a: 460c mov r4, r1 800198c: 4616 mov r6, r2 800198e: d505 bpl.n 800199c <__swrite+0x1e> 8001990: f9b1 100e ldrsh.w r1, [r1, #14] 8001994: 2302 movs r3, #2 8001996: 2200 movs r2, #0 8001998: f000 f928 bl 8001bec <_lseek_r> 800199c: 89a3 ldrh r3, [r4, #12] 800199e: f9b4 100e ldrsh.w r1, [r4, #14] 80019a2: f423 5380 bic.w r3, r3, #4096 ; 0x1000 80019a6: 81a3 strh r3, [r4, #12] 80019a8: 4632 mov r2, r6 80019aa: 463b mov r3, r7 80019ac: 4628 mov r0, r5 80019ae: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} 80019b2: f000 b869 b.w 8001a88 <_write_r> 080019b6 <__sseek>: 80019b6: b510 push {r4, lr} 80019b8: 460c mov r4, r1 80019ba: f9b1 100e ldrsh.w r1, [r1, #14] 80019be: f000 f915 bl 8001bec <_lseek_r> 80019c2: 1c43 adds r3, r0, #1 80019c4: 89a3 ldrh r3, [r4, #12] 80019c6: bf15 itete ne 80019c8: 6560 strne r0, [r4, #84] ; 0x54 80019ca: f423 5380 biceq.w r3, r3, #4096 ; 0x1000 80019ce: f443 5380 orrne.w r3, r3, #4096 ; 0x1000 80019d2: 81a3 strheq r3, [r4, #12] 80019d4: bf18 it ne 80019d6: 81a3 strhne r3, [r4, #12] 80019d8: bd10 pop {r4, pc} 080019da <__sclose>: 80019da: f9b1 100e ldrsh.w r1, [r1, #14] 80019de: f000 b8d3 b.w 8001b88 <_close_r> ... 080019e4 <__swbuf_r>: 80019e4: b5f8 push {r3, r4, r5, r6, r7, lr} 80019e6: 460e mov r6, r1 80019e8: 4614 mov r4, r2 80019ea: 4605 mov r5, r0 80019ec: b118 cbz r0, 80019f6 <__swbuf_r+0x12> 80019ee: 6983 ldr r3, [r0, #24] 80019f0: b90b cbnz r3, 80019f6 <__swbuf_r+0x12> 80019f2: f7ff fa75 bl 8000ee0 <__sinit> 80019f6: 4b21 ldr r3, [pc, #132] ; (8001a7c <__swbuf_r+0x98>) 80019f8: 429c cmp r4, r3 80019fa: d12b bne.n 8001a54 <__swbuf_r+0x70> 80019fc: 686c ldr r4, [r5, #4] 80019fe: 69a3 ldr r3, [r4, #24] 8001a00: 60a3 str r3, [r4, #8] 8001a02: 89a3 ldrh r3, [r4, #12] 8001a04: 071a lsls r2, r3, #28 8001a06: d52f bpl.n 8001a68 <__swbuf_r+0x84> 8001a08: 6923 ldr r3, [r4, #16] 8001a0a: b36b cbz r3, 8001a68 <__swbuf_r+0x84> 8001a0c: 6923 ldr r3, [r4, #16] 8001a0e: 6820 ldr r0, [r4, #0] 8001a10: 1ac0 subs r0, r0, r3 8001a12: 6963 ldr r3, [r4, #20] 8001a14: b2f6 uxtb r6, r6 8001a16: 4283 cmp r3, r0 8001a18: 4637 mov r7, r6 8001a1a: dc04 bgt.n 8001a26 <__swbuf_r+0x42> 8001a1c: 4621 mov r1, r4 8001a1e: 4628 mov r0, r5 8001a20: f7ff f9b8 bl 8000d94 <_fflush_r> 8001a24: bb30 cbnz r0, 8001a74 <__swbuf_r+0x90> 8001a26: 68a3 ldr r3, [r4, #8] 8001a28: 3b01 subs r3, #1 8001a2a: 60a3 str r3, [r4, #8] 8001a2c: 6823 ldr r3, [r4, #0] 8001a2e: 1c5a adds r2, r3, #1 8001a30: 6022 str r2, [r4, #0] 8001a32: 701e strb r6, [r3, #0] 8001a34: 6963 ldr r3, [r4, #20] 8001a36: 3001 adds r0, #1 8001a38: 4283 cmp r3, r0 8001a3a: d004 beq.n 8001a46 <__swbuf_r+0x62> 8001a3c: 89a3 ldrh r3, [r4, #12] 8001a3e: 07db lsls r3, r3, #31 8001a40: d506 bpl.n 8001a50 <__swbuf_r+0x6c> 8001a42: 2e0a cmp r6, #10 8001a44: d104 bne.n 8001a50 <__swbuf_r+0x6c> 8001a46: 4621 mov r1, r4 8001a48: 4628 mov r0, r5 8001a4a: f7ff f9a3 bl 8000d94 <_fflush_r> 8001a4e: b988 cbnz r0, 8001a74 <__swbuf_r+0x90> 8001a50: 4638 mov r0, r7 8001a52: bdf8 pop {r3, r4, r5, r6, r7, pc} 8001a54: 4b0a ldr r3, [pc, #40] ; (8001a80 <__swbuf_r+0x9c>) 8001a56: 429c cmp r4, r3 8001a58: d101 bne.n 8001a5e <__swbuf_r+0x7a> 8001a5a: 68ac ldr r4, [r5, #8] 8001a5c: e7cf b.n 80019fe <__swbuf_r+0x1a> 8001a5e: 4b09 ldr r3, [pc, #36] ; (8001a84 <__swbuf_r+0xa0>) 8001a60: 429c cmp r4, r3 8001a62: bf08 it eq 8001a64: 68ec ldreq r4, [r5, #12] 8001a66: e7ca b.n 80019fe <__swbuf_r+0x1a> 8001a68: 4621 mov r1, r4 8001a6a: 4628 mov r0, r5 8001a6c: f000 f81e bl 8001aac <__swsetup_r> 8001a70: 2800 cmp r0, #0 8001a72: d0cb beq.n 8001a0c <__swbuf_r+0x28> 8001a74: f04f 37ff mov.w r7, #4294967295 8001a78: e7ea b.n 8001a50 <__swbuf_r+0x6c> 8001a7a: bf00 nop 8001a7c: 08001f44 .word 0x08001f44 8001a80: 08001f64 .word 0x08001f64 8001a84: 08001f24 .word 0x08001f24 08001a88 <_write_r>: 8001a88: b538 push {r3, r4, r5, lr} 8001a8a: 4d07 ldr r5, [pc, #28] ; (8001aa8 <_write_r+0x20>) 8001a8c: 4604 mov r4, r0 8001a8e: 4608 mov r0, r1 8001a90: 4611 mov r1, r2 8001a92: 2200 movs r2, #0 8001a94: 602a str r2, [r5, #0] 8001a96: 461a mov r2, r3 8001a98: f7fe fef9 bl 800088e <_write> 8001a9c: 1c43 adds r3, r0, #1 8001a9e: d102 bne.n 8001aa6 <_write_r+0x1e> 8001aa0: 682b ldr r3, [r5, #0] 8001aa2: b103 cbz r3, 8001aa6 <_write_r+0x1e> 8001aa4: 6023 str r3, [r4, #0] 8001aa6: bd38 pop {r3, r4, r5, pc} 8001aa8: 2000009c .word 0x2000009c 08001aac <__swsetup_r>: 8001aac: 4b32 ldr r3, [pc, #200] ; (8001b78 <__swsetup_r+0xcc>) 8001aae: b570 push {r4, r5, r6, lr} 8001ab0: 681d ldr r5, [r3, #0] 8001ab2: 4606 mov r6, r0 8001ab4: 460c mov r4, r1 8001ab6: b125 cbz r5, 8001ac2 <__swsetup_r+0x16> 8001ab8: 69ab ldr r3, [r5, #24] 8001aba: b913 cbnz r3, 8001ac2 <__swsetup_r+0x16> 8001abc: 4628 mov r0, r5 8001abe: f7ff fa0f bl 8000ee0 <__sinit> 8001ac2: 4b2e ldr r3, [pc, #184] ; (8001b7c <__swsetup_r+0xd0>) 8001ac4: 429c cmp r4, r3 8001ac6: d10f bne.n 8001ae8 <__swsetup_r+0x3c> 8001ac8: 686c ldr r4, [r5, #4] 8001aca: 89a3 ldrh r3, [r4, #12] 8001acc: f9b4 200c ldrsh.w r2, [r4, #12] 8001ad0: 0719 lsls r1, r3, #28 8001ad2: d42c bmi.n 8001b2e <__swsetup_r+0x82> 8001ad4: 06dd lsls r5, r3, #27 8001ad6: d411 bmi.n 8001afc <__swsetup_r+0x50> 8001ad8: 2309 movs r3, #9 8001ada: 6033 str r3, [r6, #0] 8001adc: f042 0340 orr.w r3, r2, #64 ; 0x40 8001ae0: 81a3 strh r3, [r4, #12] 8001ae2: f04f 30ff mov.w r0, #4294967295 8001ae6: e03e b.n 8001b66 <__swsetup_r+0xba> 8001ae8: 4b25 ldr r3, [pc, #148] ; (8001b80 <__swsetup_r+0xd4>) 8001aea: 429c cmp r4, r3 8001aec: d101 bne.n 8001af2 <__swsetup_r+0x46> 8001aee: 68ac ldr r4, [r5, #8] 8001af0: e7eb b.n 8001aca <__swsetup_r+0x1e> 8001af2: 4b24 ldr r3, [pc, #144] ; (8001b84 <__swsetup_r+0xd8>) 8001af4: 429c cmp r4, r3 8001af6: bf08 it eq 8001af8: 68ec ldreq r4, [r5, #12] 8001afa: e7e6 b.n 8001aca <__swsetup_r+0x1e> 8001afc: 0758 lsls r0, r3, #29 8001afe: d512 bpl.n 8001b26 <__swsetup_r+0x7a> 8001b00: 6b61 ldr r1, [r4, #52] ; 0x34 8001b02: b141 cbz r1, 8001b16 <__swsetup_r+0x6a> 8001b04: f104 0344 add.w r3, r4, #68 ; 0x44 8001b08: 4299 cmp r1, r3 8001b0a: d002 beq.n 8001b12 <__swsetup_r+0x66> 8001b0c: 4630 mov r0, r6 8001b0e: f7ff fb51 bl 80011b4 <_free_r> 8001b12: 2300 movs r3, #0 8001b14: 6363 str r3, [r4, #52] ; 0x34 8001b16: 89a3 ldrh r3, [r4, #12] 8001b18: f023 0324 bic.w r3, r3, #36 ; 0x24 8001b1c: 81a3 strh r3, [r4, #12] 8001b1e: 2300 movs r3, #0 8001b20: 6063 str r3, [r4, #4] 8001b22: 6923 ldr r3, [r4, #16] 8001b24: 6023 str r3, [r4, #0] 8001b26: 89a3 ldrh r3, [r4, #12] 8001b28: f043 0308 orr.w r3, r3, #8 8001b2c: 81a3 strh r3, [r4, #12] 8001b2e: 6923 ldr r3, [r4, #16] 8001b30: b94b cbnz r3, 8001b46 <__swsetup_r+0x9a> 8001b32: 89a3 ldrh r3, [r4, #12] 8001b34: f403 7320 and.w r3, r3, #640 ; 0x280 8001b38: f5b3 7f00 cmp.w r3, #512 ; 0x200 8001b3c: d003 beq.n 8001b46 <__swsetup_r+0x9a> 8001b3e: 4621 mov r1, r4 8001b40: 4630 mov r0, r6 8001b42: f7ff faef bl 8001124 <__smakebuf_r> 8001b46: 89a0 ldrh r0, [r4, #12] 8001b48: f9b4 200c ldrsh.w r2, [r4, #12] 8001b4c: f010 0301 ands.w r3, r0, #1 8001b50: d00a beq.n 8001b68 <__swsetup_r+0xbc> 8001b52: 2300 movs r3, #0 8001b54: 60a3 str r3, [r4, #8] 8001b56: 6963 ldr r3, [r4, #20] 8001b58: 425b negs r3, r3 8001b5a: 61a3 str r3, [r4, #24] 8001b5c: 6923 ldr r3, [r4, #16] 8001b5e: b943 cbnz r3, 8001b72 <__swsetup_r+0xc6> 8001b60: f010 0080 ands.w r0, r0, #128 ; 0x80 8001b64: d1ba bne.n 8001adc <__swsetup_r+0x30> 8001b66: bd70 pop {r4, r5, r6, pc} 8001b68: 0781 lsls r1, r0, #30 8001b6a: bf58 it pl 8001b6c: 6963 ldrpl r3, [r4, #20] 8001b6e: 60a3 str r3, [r4, #8] 8001b70: e7f4 b.n 8001b5c <__swsetup_r+0xb0> 8001b72: 2000 movs r0, #0 8001b74: e7f7 b.n 8001b66 <__swsetup_r+0xba> 8001b76: bf00 nop 8001b78: 20000004 .word 0x20000004 8001b7c: 08001f44 .word 0x08001f44 8001b80: 08001f64 .word 0x08001f64 8001b84: 08001f24 .word 0x08001f24 08001b88 <_close_r>: 8001b88: b538 push {r3, r4, r5, lr} 8001b8a: 4d06 ldr r5, [pc, #24] ; (8001ba4 <_close_r+0x1c>) 8001b8c: 2300 movs r3, #0 8001b8e: 4604 mov r4, r0 8001b90: 4608 mov r0, r1 8001b92: 602b str r3, [r5, #0] 8001b94: f7fe fdf2 bl 800077c <_close> 8001b98: 1c43 adds r3, r0, #1 8001b9a: d102 bne.n 8001ba2 <_close_r+0x1a> 8001b9c: 682b ldr r3, [r5, #0] 8001b9e: b103 cbz r3, 8001ba2 <_close_r+0x1a> 8001ba0: 6023 str r3, [r4, #0] 8001ba2: bd38 pop {r3, r4, r5, pc} 8001ba4: 2000009c .word 0x2000009c 08001ba8 <_fstat_r>: 8001ba8: b538 push {r3, r4, r5, lr} 8001baa: 4d07 ldr r5, [pc, #28] ; (8001bc8 <_fstat_r+0x20>) 8001bac: 2300 movs r3, #0 8001bae: 4604 mov r4, r0 8001bb0: 4608 mov r0, r1 8001bb2: 4611 mov r1, r2 8001bb4: 602b str r3, [r5, #0] 8001bb6: f7fe fded bl 8000794 <_fstat> 8001bba: 1c43 adds r3, r0, #1 8001bbc: d102 bne.n 8001bc4 <_fstat_r+0x1c> 8001bbe: 682b ldr r3, [r5, #0] 8001bc0: b103 cbz r3, 8001bc4 <_fstat_r+0x1c> 8001bc2: 6023 str r3, [r4, #0] 8001bc4: bd38 pop {r3, r4, r5, pc} 8001bc6: bf00 nop 8001bc8: 2000009c .word 0x2000009c 08001bcc <_isatty_r>: 8001bcc: b538 push {r3, r4, r5, lr} 8001bce: 4d06 ldr r5, [pc, #24] ; (8001be8 <_isatty_r+0x1c>) 8001bd0: 2300 movs r3, #0 8001bd2: 4604 mov r4, r0 8001bd4: 4608 mov r0, r1 8001bd6: 602b str r3, [r5, #0] 8001bd8: f7fe fdec bl 80007b4 <_isatty> 8001bdc: 1c43 adds r3, r0, #1 8001bde: d102 bne.n 8001be6 <_isatty_r+0x1a> 8001be0: 682b ldr r3, [r5, #0] 8001be2: b103 cbz r3, 8001be6 <_isatty_r+0x1a> 8001be4: 6023 str r3, [r4, #0] 8001be6: bd38 pop {r3, r4, r5, pc} 8001be8: 2000009c .word 0x2000009c 08001bec <_lseek_r>: 8001bec: b538 push {r3, r4, r5, lr} 8001bee: 4d07 ldr r5, [pc, #28] ; (8001c0c <_lseek_r+0x20>) 8001bf0: 4604 mov r4, r0 8001bf2: 4608 mov r0, r1 8001bf4: 4611 mov r1, r2 8001bf6: 2200 movs r2, #0 8001bf8: 602a str r2, [r5, #0] 8001bfa: 461a mov r2, r3 8001bfc: f7fe fde5 bl 80007ca <_lseek> 8001c00: 1c43 adds r3, r0, #1 8001c02: d102 bne.n 8001c0a <_lseek_r+0x1e> 8001c04: 682b ldr r3, [r5, #0] 8001c06: b103 cbz r3, 8001c0a <_lseek_r+0x1e> 8001c08: 6023 str r3, [r4, #0] 8001c0a: bd38 pop {r3, r4, r5, pc} 8001c0c: 2000009c .word 0x2000009c 08001c10 <__malloc_lock>: 8001c10: 4801 ldr r0, [pc, #4] ; (8001c18 <__malloc_lock+0x8>) 8001c12: f7ff ba60 b.w 80010d6 <__retarget_lock_acquire_recursive> 8001c16: bf00 nop 8001c18: 20000094 .word 0x20000094 08001c1c <__malloc_unlock>: 8001c1c: 4801 ldr r0, [pc, #4] ; (8001c24 <__malloc_unlock+0x8>) 8001c1e: f7ff ba5b b.w 80010d8 <__retarget_lock_release_recursive> 8001c22: bf00 nop 8001c24: 20000094 .word 0x20000094 08001c28 <_read_r>: 8001c28: b538 push {r3, r4, r5, lr} 8001c2a: 4d07 ldr r5, [pc, #28] ; (8001c48 <_read_r+0x20>) 8001c2c: 4604 mov r4, r0 8001c2e: 4608 mov r0, r1 8001c30: 4611 mov r1, r2 8001c32: 2200 movs r2, #0 8001c34: 602a str r2, [r5, #0] 8001c36: 461a mov r2, r3 8001c38: f7fe fe00 bl 800083c <_read> 8001c3c: 1c43 adds r3, r0, #1 8001c3e: d102 bne.n 8001c46 <_read_r+0x1e> 8001c40: 682b ldr r3, [r5, #0] 8001c42: b103 cbz r3, 8001c46 <_read_r+0x1e> 8001c44: 6023 str r3, [r4, #0] 8001c46: bd38 pop {r3, r4, r5, pc} 8001c48: 2000009c .word 0x2000009c 08001c4c : 8001c4c: 8983 ldrh r3, [r0, #12] 8001c4e: f003 0309 and.w r3, r3, #9 8001c52: 2b09 cmp r3, #9 8001c54: d101 bne.n 8001c5a 8001c56: f7ff b8d9 b.w 8000e0c 8001c5a: 2000 movs r0, #0 8001c5c: 4770 bx lr ... 08001c60 <__srefill_r>: 8001c60: b5f8 push {r3, r4, r5, r6, r7, lr} 8001c62: 460c mov r4, r1 8001c64: 4605 mov r5, r0 8001c66: b118 cbz r0, 8001c70 <__srefill_r+0x10> 8001c68: 6983 ldr r3, [r0, #24] 8001c6a: b90b cbnz r3, 8001c70 <__srefill_r+0x10> 8001c6c: f7ff f938 bl 8000ee0 <__sinit> 8001c70: 4b3b ldr r3, [pc, #236] ; (8001d60 <__srefill_r+0x100>) 8001c72: 429c cmp r4, r3 8001c74: d10a bne.n 8001c8c <__srefill_r+0x2c> 8001c76: 686c ldr r4, [r5, #4] 8001c78: f9b4 200c ldrsh.w r2, [r4, #12] 8001c7c: 2300 movs r3, #0 8001c7e: 6063 str r3, [r4, #4] 8001c80: 89a3 ldrh r3, [r4, #12] 8001c82: 069e lsls r6, r3, #26 8001c84: d50c bpl.n 8001ca0 <__srefill_r+0x40> 8001c86: f04f 30ff mov.w r0, #4294967295 8001c8a: e066 b.n 8001d5a <__srefill_r+0xfa> 8001c8c: 4b35 ldr r3, [pc, #212] ; (8001d64 <__srefill_r+0x104>) 8001c8e: 429c cmp r4, r3 8001c90: d101 bne.n 8001c96 <__srefill_r+0x36> 8001c92: 68ac ldr r4, [r5, #8] 8001c94: e7f0 b.n 8001c78 <__srefill_r+0x18> 8001c96: 4b34 ldr r3, [pc, #208] ; (8001d68 <__srefill_r+0x108>) 8001c98: 429c cmp r4, r3 8001c9a: bf08 it eq 8001c9c: 68ec ldreq r4, [r5, #12] 8001c9e: e7eb b.n 8001c78 <__srefill_r+0x18> 8001ca0: 0758 lsls r0, r3, #29 8001ca2: d448 bmi.n 8001d36 <__srefill_r+0xd6> 8001ca4: 06d9 lsls r1, r3, #27 8001ca6: d405 bmi.n 8001cb4 <__srefill_r+0x54> 8001ca8: 2309 movs r3, #9 8001caa: 602b str r3, [r5, #0] 8001cac: f042 0340 orr.w r3, r2, #64 ; 0x40 8001cb0: 81a3 strh r3, [r4, #12] 8001cb2: e7e8 b.n 8001c86 <__srefill_r+0x26> 8001cb4: 071a lsls r2, r3, #28 8001cb6: d50b bpl.n 8001cd0 <__srefill_r+0x70> 8001cb8: 4621 mov r1, r4 8001cba: 4628 mov r0, r5 8001cbc: f7ff f86a bl 8000d94 <_fflush_r> 8001cc0: 2800 cmp r0, #0 8001cc2: d1e0 bne.n 8001c86 <__srefill_r+0x26> 8001cc4: 89a3 ldrh r3, [r4, #12] 8001cc6: 60a0 str r0, [r4, #8] 8001cc8: f023 0308 bic.w r3, r3, #8 8001ccc: 81a3 strh r3, [r4, #12] 8001cce: 61a0 str r0, [r4, #24] 8001cd0: 89a3 ldrh r3, [r4, #12] 8001cd2: f043 0304 orr.w r3, r3, #4 8001cd6: 81a3 strh r3, [r4, #12] 8001cd8: 6923 ldr r3, [r4, #16] 8001cda: b91b cbnz r3, 8001ce4 <__srefill_r+0x84> 8001cdc: 4621 mov r1, r4 8001cde: 4628 mov r0, r5 8001ce0: f7ff fa20 bl 8001124 <__smakebuf_r> 8001ce4: 89a6 ldrh r6, [r4, #12] 8001ce6: f9b4 700c ldrsh.w r7, [r4, #12] 8001cea: 07b3 lsls r3, r6, #30 8001cec: d00f beq.n 8001d0e <__srefill_r+0xae> 8001cee: 2301 movs r3, #1 8001cf0: 81a3 strh r3, [r4, #12] 8001cf2: 4b1e ldr r3, [pc, #120] ; (8001d6c <__srefill_r+0x10c>) 8001cf4: 491e ldr r1, [pc, #120] ; (8001d70 <__srefill_r+0x110>) 8001cf6: 6818 ldr r0, [r3, #0] 8001cf8: f006 0609 and.w r6, r6, #9 8001cfc: f7ff f96e bl 8000fdc <_fwalk> 8001d00: 2e09 cmp r6, #9 8001d02: 81a7 strh r7, [r4, #12] 8001d04: d103 bne.n 8001d0e <__srefill_r+0xae> 8001d06: 4621 mov r1, r4 8001d08: 4628 mov r0, r5 8001d0a: f7fe ffbd bl 8000c88 <__sflush_r> 8001d0e: 6922 ldr r2, [r4, #16] 8001d10: 6a66 ldr r6, [r4, #36] ; 0x24 8001d12: 6963 ldr r3, [r4, #20] 8001d14: 6a21 ldr r1, [r4, #32] 8001d16: 6022 str r2, [r4, #0] 8001d18: 4628 mov r0, r5 8001d1a: 47b0 blx r6 8001d1c: 2800 cmp r0, #0 8001d1e: 6060 str r0, [r4, #4] 8001d20: dc1c bgt.n 8001d5c <__srefill_r+0xfc> 8001d22: f9b4 300c ldrsh.w r3, [r4, #12] 8001d26: bf17 itett ne 8001d28: 2200 movne r2, #0 8001d2a: f043 0320 orreq.w r3, r3, #32 8001d2e: 6062 strne r2, [r4, #4] 8001d30: f043 0340 orrne.w r3, r3, #64 ; 0x40 8001d34: e7bc b.n 8001cb0 <__srefill_r+0x50> 8001d36: 6b61 ldr r1, [r4, #52] ; 0x34 8001d38: 2900 cmp r1, #0 8001d3a: d0cd beq.n 8001cd8 <__srefill_r+0x78> 8001d3c: f104 0344 add.w r3, r4, #68 ; 0x44 8001d40: 4299 cmp r1, r3 8001d42: d002 beq.n 8001d4a <__srefill_r+0xea> 8001d44: 4628 mov r0, r5 8001d46: f7ff fa35 bl 80011b4 <_free_r> 8001d4a: 6c23 ldr r3, [r4, #64] ; 0x40 8001d4c: 6063 str r3, [r4, #4] 8001d4e: 2000 movs r0, #0 8001d50: 6360 str r0, [r4, #52] ; 0x34 8001d52: 2b00 cmp r3, #0 8001d54: d0c0 beq.n 8001cd8 <__srefill_r+0x78> 8001d56: 6be3 ldr r3, [r4, #60] ; 0x3c 8001d58: 6023 str r3, [r4, #0] 8001d5a: bdf8 pop {r3, r4, r5, r6, r7, pc} 8001d5c: 2000 movs r0, #0 8001d5e: e7fc b.n 8001d5a <__srefill_r+0xfa> 8001d60: 08001f44 .word 0x08001f44 8001d64: 08001f64 .word 0x08001f64 8001d68: 08001f24 .word 0x08001f24 8001d6c: 08001f20 .word 0x08001f20 8001d70: 08001c4d .word 0x08001c4d 08001d74 <_init>: 8001d74: b5f8 push {r3, r4, r5, r6, r7, lr} 8001d76: bf00 nop 8001d78: bcf8 pop {r3, r4, r5, r6, r7} 8001d7a: bc08 pop {r3} 8001d7c: 469e mov lr, r3 8001d7e: 4770 bx lr 08001d80 <_fini>: 8001d80: b5f8 push {r3, r4, r5, r6, r7, lr} 8001d82: bf00 nop 8001d84: bcf8 pop {r3, r4, r5, r6, r7} 8001d86: bc08 pop {r3} 8001d88: 469e mov lr, r3 8001d8a: 4770 bx lr