Files
CE2812-Workspace/labW2barnestr/Debug/labW2barnestr.list
2022-01-21 14:53:11 -06:00

3581 lines
130 KiB
Plaintext

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 <frame_dummy>:
80001f4: b508 push {r3, lr}
80001f6: 4b03 ldr r3, [pc, #12] ; (8000204 <frame_dummy+0x10>)
80001f8: b11b cbz r3, 8000202 <frame_dummy+0xe>
80001fa: 4903 ldr r1, [pc, #12] ; (8000208 <frame_dummy+0x14>)
80001fc: 4803 ldr r0, [pc, #12] ; (800020c <frame_dummy+0x18>)
80001fe: f3af 8000 nop.w
8000202: bd08 pop {r3, pc}
8000204: 00000000 .word 0x00000000
8000208: 2000006c .word 0x2000006c
800020c: 08001d74 .word 0x08001d74
08000210 <memchr>:
8000210: f001 01ff and.w r1, r1, #255 ; 0xff
8000214: 2a10 cmp r2, #16
8000216: db2b blt.n 8000270 <memchr+0x60>
8000218: f010 0f07 tst.w r0, #7
800021c: d008 beq.n 8000230 <memchr+0x20>
800021e: f810 3b01 ldrb.w r3, [r0], #1
8000222: 3a01 subs r2, #1
8000224: 428b cmp r3, r1
8000226: d02d beq.n 8000284 <memchr+0x74>
8000228: f010 0f07 tst.w r0, #7
800022c: b342 cbz r2, 8000280 <memchr+0x70>
800022e: d1f6 bne.n 800021e <memchr+0xe>
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 <memchr+0x78>
8000264: d1ee bne.n 8000244 <memchr+0x34>
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 <memchr+0x70>
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 <memchr+0x74>
800027e: d1f8 bne.n 8000272 <memchr+0x62>
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 <memchr+0x98>
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 <delay_1ms>:
*/
#include <inttypes.h>
#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 <delay_1ms+0x4c>
// Clear value register
*STK_VAL = 0x0000;
80002be: 4b14 ldr r3, [pc, #80] ; (8000310 <delay_1ms+0x60>)
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 <delay_1ms+0x64>)
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 <delay_1ms+0x68>)
80002ce: 681b ldr r3, [r3, #0]
80002d0: 4a11 ldr r2, [pc, #68] ; (8000318 <delay_1ms+0x68>)
80002d2: f043 0304 orr.w r3, r3, #4
80002d6: 6013 str r3, [r2, #0]
*STK_CTRL |= EN;
80002d8: 4b0f ldr r3, [pc, #60] ; (8000318 <delay_1ms+0x68>)
80002da: 681b ldr r3, [r3, #0]
80002dc: 4a0e ldr r2, [pc, #56] ; (8000318 <delay_1ms+0x68>)
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 <delay_1ms+0x68>)
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 <delay_1ms+0x34>
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 <delay_1ms+0xe>
}
}
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 <led_init>:
#include <inttypes.h>
#include <stdio.h>
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<<GPIOBEN);
8000320: 4b13 ldr r3, [pc, #76] ; (8000370 <led_init+0x54>)
8000322: 681b ldr r3, [r3, #0]
8000324: 4a12 ldr r2, [pc, #72] ; (8000370 <led_init+0x54>)
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 <led_init+0x58>)
800032e: 681b ldr r3, [r3, #0]
8000330: 4a10 ldr r2, [pc, #64] ; (8000374 <led_init+0x58>)
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 <led_init+0x58>)
800033e: 681b ldr r3, [r3, #0]
8000340: 4a0c ldr r2, [pc, #48] ; (8000374 <led_init+0x58>)
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 <led_init+0x58>)
800034e: 681b ldr r3, [r3, #0]
8000350: 4a08 ldr r2, [pc, #32] ; (8000374 <led_init+0x58>)
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 <led_init+0x58>)
800035a: 681b ldr r3, [r3, #0]
800035c: 4a05 ldr r2, [pc, #20] ; (8000374 <led_init+0x58>)
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 <led_allOn>:
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 <led_allOn+0x20>)
800037e: 681b ldr r3, [r3, #0]
8000380: 4a05 ldr r2, [pc, #20] ; (8000398 <led_allOn+0x20>)
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 <led_allOff>:
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 <led_allOff+0x20>)
80003a2: 681b ldr r3, [r3, #0]
80003a4: 4a05 ldr r2, [pc, #20] ; (80003bc <led_allOff+0x20>)
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 <led_on>:
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 <led_on+0x9e>
80003d0: a201 add r2, pc, #4 ; (adr r2, 80003d8 <led_on+0x18>)
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 <led_on+0xb0>)
8000402: 2220 movs r2, #32
8000404: 601a str r2, [r3, #0]
break;
8000406: e02e b.n 8000466 <led_on+0xa6>
case 1:
*GPIOB_BSRR = (1<<6);
8000408: 4b19 ldr r3, [pc, #100] ; (8000470 <led_on+0xb0>)
800040a: 2240 movs r2, #64 ; 0x40
800040c: 601a str r2, [r3, #0]
break;
800040e: e02a b.n 8000466 <led_on+0xa6>
case 2:
*GPIOB_BSRR = (1<<7);
8000410: 4b17 ldr r3, [pc, #92] ; (8000470 <led_on+0xb0>)
8000412: 2280 movs r2, #128 ; 0x80
8000414: 601a str r2, [r3, #0]
break;
8000416: e026 b.n 8000466 <led_on+0xa6>
case 3:
*GPIOB_BSRR = (1<<8);
8000418: 4b15 ldr r3, [pc, #84] ; (8000470 <led_on+0xb0>)
800041a: f44f 7280 mov.w r2, #256 ; 0x100
800041e: 601a str r2, [r3, #0]
break;
8000420: e021 b.n 8000466 <led_on+0xa6>
case 4:
*GPIOB_BSRR = (1<<9);
8000422: 4b13 ldr r3, [pc, #76] ; (8000470 <led_on+0xb0>)
8000424: f44f 7200 mov.w r2, #512 ; 0x200
8000428: 601a str r2, [r3, #0]
break;
800042a: e01c b.n 8000466 <led_on+0xa6>
case 5:
*GPIOB_BSRR = (1<<10);
800042c: 4b10 ldr r3, [pc, #64] ; (8000470 <led_on+0xb0>)
800042e: f44f 6280 mov.w r2, #1024 ; 0x400
8000432: 601a str r2, [r3, #0]
break;
8000434: e017 b.n 8000466 <led_on+0xa6>
case 6:
*GPIOB_BSRR = (1<<12);
8000436: 4b0e ldr r3, [pc, #56] ; (8000470 <led_on+0xb0>)
8000438: f44f 5280 mov.w r2, #4096 ; 0x1000
800043c: 601a str r2, [r3, #0]
break;
800043e: e012 b.n 8000466 <led_on+0xa6>
case 7:
*GPIOB_BSRR = (1<<13);
8000440: 4b0b ldr r3, [pc, #44] ; (8000470 <led_on+0xb0>)
8000442: f44f 5200 mov.w r2, #8192 ; 0x2000
8000446: 601a str r2, [r3, #0]
break;
8000448: e00d b.n 8000466 <led_on+0xa6>
case 8:
*GPIOB_BSRR = (1<<14);
800044a: 4b09 ldr r3, [pc, #36] ; (8000470 <led_on+0xb0>)
800044c: f44f 4280 mov.w r2, #16384 ; 0x4000
8000450: 601a str r2, [r3, #0]
break;
8000452: e008 b.n 8000466 <led_on+0xa6>
case 9:
*GPIOB_BSRR = (1<<15);
8000454: 4b06 ldr r3, [pc, #24] ; (8000470 <led_on+0xb0>)
8000456: f44f 4200 mov.w r2, #32768 ; 0x8000
800045a: 601a str r2, [r3, #0]
break;
800045c: e003 b.n 8000466 <led_on+0xa6>
default:
printf("LED index out of range\n\r");
800045e: 4805 ldr r0, [pc, #20] ; (8000474 <led_on+0xb4>)
8000460: f000 fb34 bl 8000acc <iprintf>
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 <led_off>:
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 <led_off+0x1e>
*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 <led_off+0x40>)
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 <led_off+0x38>
} else if (ledIndex >= 6) {
8000496: 79fb ldrb r3, [r7, #7]
8000498: 2b05 cmp r3, #5
800049a: d906 bls.n 80004aa <led_off+0x32>
*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 <led_off+0x40>)
80004a6: 601a str r2, [r3, #0]
}
80004a8: e002 b.n 80004b0 <led_off+0x38>
printf("LED index out of range\n\r");
80004aa: 4804 ldr r0, [pc, #16] ; (80004bc <led_off+0x44>)
80004ac: f000 fb0e bl 8000acc <iprintf>
}
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 <led_scan>:
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 <led_allOff>
// 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 <led_scan+0x46>
// Scaled Delay
delay_1ms(50+(ledSpeed*50));
80004d0: 4b22 ldr r3, [pc, #136] ; (800055c <led_scan+0x9c>)
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 <delay_1ms>
if(i != 0){
80004e2: 687b ldr r3, [r7, #4]
80004e4: 2b00 cmp r3, #0
80004e6: d006 beq.n 80004f6 <led_scan+0x36>
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_off>
}
led_on(i);
80004f6: 687b ldr r3, [r7, #4]
80004f8: b2db uxtb r3, r3
80004fa: 4618 mov r0, r3
80004fc: f7ff ff60 bl 80003c0 <led_on>
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 <led_scan+0x10>
}
// 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 <led_scan+0x88>
if(i != 9){
8000512: 683b ldr r3, [r7, #0]
8000514: 2b09 cmp r3, #9
8000516: d006 beq.n 8000526 <led_scan+0x66>
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_off>
}
led_on(i);
8000526: 683b ldr r3, [r7, #0]
8000528: b2db uxtb r3, r3
800052a: 4618 mov r0, r3
800052c: f7ff ff48 bl 80003c0 <led_on>
// Scaled Delay
delay_1ms(50+(ledSpeed*50));
8000530: 4b0a ldr r3, [pc, #40] ; (800055c <led_scan+0x9c>)
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 <delay_1ms>
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_scan+0x52>
}
led_off(0);
800054e: 2000 movs r0, #0
8000550: f7ff ff92 bl 8000478 <led_off>
}
8000554: bf00 nop
8000556: 3708 adds r7, #8
8000558: 46bd mov sp, r7
800055a: bd80 pop {r7, pc}
800055c: 20000000 .word 0x20000000
08000560 <led_flash>:
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_flash+0x3e>
led_allOn();
800056c: f7ff ff04 bl 8000378 <led_allOn>
delay_1ms(100+(ledSpeed*100));
8000570: 4b0f ldr r3, [pc, #60] ; (80005b0 <led_flash+0x50>)
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 <delay_1ms>
led_allOff();
8000582: f7ff ff0b bl 800039c <led_allOff>
delay_1ms(100+(ledSpeed*100));
8000586: 4b0a ldr r3, [pc, #40] ; (80005b0 <led_flash+0x50>)
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 <delay_1ms>
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 <led_flash+0xc>
}
}
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 <led_incSpeed>:
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 <led_incSpeed+0x24>)
80005ba: 681b ldr r3, [r3, #0]
80005bc: 2b00 cmp r3, #0
80005be: d103 bne.n 80005c8 <led_incSpeed+0x14>
printf("Speed too fast\n\r");
80005c0: 4806 ldr r0, [pc, #24] ; (80005dc <led_incSpeed+0x28>)
80005c2: f000 fa83 bl 8000acc <iprintf>
} else {
ledSpeed--;
}
}
80005c6: e004 b.n 80005d2 <led_incSpeed+0x1e>
ledSpeed--;
80005c8: 4b03 ldr r3, [pc, #12] ; (80005d8 <led_incSpeed+0x24>)
80005ca: 681b ldr r3, [r3, #0]
80005cc: 3b01 subs r3, #1
80005ce: 4a02 ldr r2, [pc, #8] ; (80005d8 <led_incSpeed+0x24>)
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 <led_decSpeed>:
void led_decSpeed(){
80005e0: b580 push {r7, lr}
80005e2: af00 add r7, sp, #0
if (ledSpeed == 9){
80005e4: 4b07 ldr r3, [pc, #28] ; (8000604 <led_decSpeed+0x24>)
80005e6: 681b ldr r3, [r3, #0]
80005e8: 2b09 cmp r3, #9
80005ea: d103 bne.n 80005f4 <led_decSpeed+0x14>
printf("Speed too slow\n\r");
80005ec: 4806 ldr r0, [pc, #24] ; (8000608 <led_decSpeed+0x28>)
80005ee: f000 fa6d bl 8000acc <iprintf>
} else {
ledSpeed++;
}
}
80005f2: e004 b.n 80005fe <led_decSpeed+0x1e>
ledSpeed++;
80005f4: 4b03 ldr r3, [pc, #12] ; (8000604 <led_decSpeed+0x24>)
80005f6: 681b ldr r3, [r3, #0]
80005f8: 3301 adds r3, #1
80005fa: 4a02 ldr r2, [pc, #8] ; (8000604 <led_decSpeed+0x24>)
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 <getCurrentSpeed>:
uint8_t getCurrentSpeed()
{
800060c: b480 push {r7}
800060e: af00 add r7, sp, #0
return ledSpeed;
8000610: 4b03 ldr r3, [pc, #12] ; (8000620 <getCurrentSpeed+0x14>)
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 <printHelp>:
#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 <printHelp+0x40>)
800062a: f000 fa4f bl 8000acc <iprintf>
printf("'f' - Flash Lights 10 Times\n\r");
800062e: 480e ldr r0, [pc, #56] ; (8000668 <printHelp+0x44>)
8000630: f000 fa4c bl 8000acc <iprintf>
printf("'s' - Scan Lights (Once back and forth)\n\r");
8000634: 480d ldr r0, [pc, #52] ; (800066c <printHelp+0x48>)
8000636: f000 fa49 bl 8000acc <iprintf>
printf("'i' - Scan Lights (Infinitely)\n\r");
800063a: 480d ldr r0, [pc, #52] ; (8000670 <printHelp+0x4c>)
800063c: f000 fa46 bl 8000acc <iprintf>
printf("'p' - Print Current Speed Interval (0-9)\n\r");
8000640: 480c ldr r0, [pc, #48] ; (8000674 <printHelp+0x50>)
8000642: f000 fa43 bl 8000acc <iprintf>
printf("'+' - Increase Speed\n\r");
8000646: 480c ldr r0, [pc, #48] ; (8000678 <printHelp+0x54>)
8000648: f000 fa40 bl 8000acc <iprintf>
printf("'-' - Decrease Speed\n\r");
800064c: 480b ldr r0, [pc, #44] ; (800067c <printHelp+0x58>)
800064e: f000 fa3d bl 8000acc <iprintf>
printf("'x' - Turn Off Lights\n\r");
8000652: 480b ldr r0, [pc, #44] ; (8000680 <printHelp+0x5c>)
8000654: f000 fa3a bl 8000acc <iprintf>
printf("'o' - Turn On Lights\n\r");
8000658: 480a ldr r0, [pc, #40] ; (8000684 <printHelp+0x60>)
800065a: f000 fa37 bl 8000acc <iprintf>
}
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>:
// 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 <main+0xe4>)
8000690: f44f 4096 mov.w r0, #19200 ; 0x4b00
8000694: f000 f954 bl 8000940 <init_usart2>
// Initialize LEDs
led_init();
8000698: f7ff fe40 bl 800031c <led_init>
char selection, dummy;
// Selection Prompt
printf("Choose an option ('h' for help)\n\r");
800069c: 4834 ldr r0, [pc, #208] ; (8000770 <main+0xe8>)
800069e: f000 fa15 bl 8000acc <iprintf>
while (1) {
selection = getchar();
80006a2: f000 f9d5 bl 8000a50 <getchar>
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 <main+0xd0>
80006b0: 2b66 cmp r3, #102 ; 0x66
80006b2: da04 bge.n 80006be <main+0x36>
80006b4: 2b2b cmp r3, #43 ; 0x2b
80006b6: d049 beq.n 800074c <main+0xc4>
80006b8: 2b2d cmp r3, #45 ; 0x2d
80006ba: d04a beq.n 8000752 <main+0xca>
80006bc: e04c b.n 8000758 <main+0xd0>
80006be: 3b66 subs r3, #102 ; 0x66
80006c0: 2b12 cmp r3, #18
80006c2: d849 bhi.n 8000758 <main+0xd0>
80006c4: a201 add r2, pc, #4 ; (adr r2, 80006cc <main+0x44>)
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 <led_allOn>
break;
800071c: e020 b.n 8000760 <main+0xd8>
case 'x':
led_allOff();
800071e: f7ff fe3d bl 800039c <led_allOff>
break;
8000722: e01d b.n 8000760 <main+0xd8>
case 'h':
printHelp();
8000724: f7ff ff7e bl 8000624 <printHelp>
break;
8000728: e01a b.n 8000760 <main+0xd8>
case 'f':
led_flash();
800072a: f7ff ff19 bl 8000560 <led_flash>
break;
800072e: e017 b.n 8000760 <main+0xd8>
case 's':
led_scan();
8000730: f7ff fec6 bl 80004c0 <led_scan>
break;
8000734: e014 b.n 8000760 <main+0xd8>
case 'i':
while(1){
led_scan();
8000736: f7ff fec3 bl 80004c0 <led_scan>
800073a: e7fc b.n 8000736 <main+0xae>
}
break;
case 'p':
printf("Current Interval: %d\n\r", getCurrentSpeed());
800073c: f7ff ff66 bl 800060c <getCurrentSpeed>
8000740: 4603 mov r3, r0
8000742: 4619 mov r1, r3
8000744: 480b ldr r0, [pc, #44] ; (8000774 <main+0xec>)
8000746: f000 f9c1 bl 8000acc <iprintf>
break;
800074a: e009 b.n 8000760 <main+0xd8>
case '+':
led_incSpeed();
800074c: f7ff ff32 bl 80005b4 <led_incSpeed>
break;
8000750: e006 b.n 8000760 <main+0xd8>
case '-':
led_decSpeed();
8000752: f7ff ff45 bl 80005e0 <led_decSpeed>
break;
8000756: e003 b.n 8000760 <main+0xd8>
default:
printf("????\n\r");
8000758: 4807 ldr r0, [pc, #28] ; (8000778 <main+0xf0>)
800075a: f000 f9b7 bl 8000acc <iprintf>
break;
800075e: bf00 nop
}
dummy = getchar();
8000760: f000 f976 bl 8000a50 <getchar>
8000764: 4603 mov r3, r0
8000766: 71bb strb r3, [r7, #6]
selection = getchar();
8000768: e79b b.n 80006a2 <main+0x1a>
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 <usart2_getch>
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 <usart2_putch>
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 <usart2_getch>:
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<<RXNE)) != (1<<RXNE));
80008ce: bf00 nop
80008d0: 4b0c ldr r3, [pc, #48] ; (8000904 <usart2_getch+0x3c>)
80008d2: 681b ldr r3, [r3, #0]
80008d4: f003 0320 and.w r3, r3, #32
80008d8: 2b20 cmp r3, #32
80008da: d1f9 bne.n 80008d0 <usart2_getch+0x8>
c = ((char) *USART_DR); // Read character from usart
80008dc: 4b0a ldr r3, [pc, #40] ; (8000908 <usart2_getch+0x40>)
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 <usart2_putch>
if (c == '\r'){ // If character is CR
80008ea: 79fb ldrb r3, [r7, #7]
80008ec: 2b0d cmp r3, #13
80008ee: d104 bne.n 80008fa <usart2_getch+0x32>
usart2_putch('\n'); // send it
80008f0: 200a movs r0, #10
80008f2: f000 f80b bl 800090c <usart2_putch>
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 <usart2_putch>:
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<<TXE)) != (1<<TXE));
8000916: bf00 nop
8000918: 4b07 ldr r3, [pc, #28] ; (8000938 <usart2_putch+0x2c>)
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 <usart2_putch+0xc>
*(USART_DR) = c;
8000924: 4a05 ldr r2, [pc, #20] ; (800093c <usart2_putch+0x30>)
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 <init_usart2>:
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<<GPIOAEN);
800094a: 4b20 ldr r3, [pc, #128] ; (80009cc <init_usart2+0x8c>)
800094c: 681b ldr r3, [r3, #0]
800094e: 4a1f ldr r2, [pc, #124] ; (80009cc <init_usart2+0x8c>)
8000950: f043 0301 orr.w r3, r3, #1
8000954: 6013 str r3, [r2, #0]
*(RCC_APB1ENR) |= (1<<USART2EN);
8000956: 4b1e ldr r3, [pc, #120] ; (80009d0 <init_usart2+0x90>)
8000958: 681b ldr r3, [r3, #0]
800095a: 4a1d ldr r2, [pc, #116] ; (80009d0 <init_usart2+0x90>)
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 <init_usart2+0x94>)
8000964: 681b ldr r3, [r3, #0]
8000966: 4a1b ldr r2, [pc, #108] ; (80009d4 <init_usart2+0x94>)
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 <init_usart2+0x94>)
8000970: 681b ldr r3, [r3, #0]
8000972: 4a18 ldr r2, [pc, #96] ; (80009d4 <init_usart2+0x94>)
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 <init_usart2+0x98>)
800097c: 681b ldr r3, [r3, #0]
800097e: 4a16 ldr r2, [pc, #88] ; (80009d8 <init_usart2+0x98>)
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 <init_usart2+0x98>)
8000988: 681b ldr r3, [r3, #0]
800098a: 4a13 ldr r2, [pc, #76] ; (80009d8 <init_usart2+0x98>)
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<<UE)|(1<<TE)|(1<<RE); // Enable UART, Tx and Rx
8000992: 4b12 ldr r3, [pc, #72] ; (80009dc <init_usart2+0x9c>)
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 <init_usart2+0xa0>)
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 <init_usart2+0xa4>)
80009a2: 2200 movs r2, #0
80009a4: 601a str r2, [r3, #0]
*(USART_BRR) = sysclk/baud;
80009a6: 4910 ldr r1, [pc, #64] ; (80009e8 <init_usart2+0xa8>)
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 <init_usart2+0xac>)
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 <setvbuf>
}
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 <Reset_Handler>:
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr r0, =_estack
80009f0: 480d ldr r0, [pc, #52] ; (8000a28 <LoopForever+0x2>)
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 <LoopForever+0x6>)
ldr r1, =_edata
80009f6: 490e ldr r1, [pc, #56] ; (8000a30 <LoopForever+0xa>)
ldr r2, =_sidata
80009f8: 4a0e ldr r2, [pc, #56] ; (8000a34 <LoopForever+0xe>)
movs r3, #0
80009fa: 2300 movs r3, #0
b LoopCopyDataInit
80009fc: e002 b.n 8000a04 <LoopCopyDataInit>
080009fe <CopyDataInit>:
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>:
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 <CopyDataInit>
/* Zero fill the bss segment. */
ldr r2, =_sbss
8000a0a: 4a0b ldr r2, [pc, #44] ; (8000a38 <LoopForever+0x12>)
ldr r4, =_ebss
8000a0c: 4c0b ldr r4, [pc, #44] ; (8000a3c <LoopForever+0x16>)
movs r3, #0
8000a0e: 2300 movs r3, #0
b LoopFillZerobss
8000a10: e001 b.n 8000a16 <LoopFillZerobss>
08000a12 <FillZerobss>:
FillZerobss:
str r3, [r2]
8000a12: 6013 str r3, [r2, #0]
adds r2, r2, #4
8000a14: 3204 adds r2, #4
08000a16 <LoopFillZerobss>:
LoopFillZerobss:
cmp r2, r4
8000a16: 42a2 cmp r2, r4
bcc FillZerobss
8000a18: d3fb bcc.n 8000a12 <FillZerobss>
/* 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 <main>
08000a26 <LoopForever>:
LoopForever:
b LoopForever
8000a26: e7fe b.n 8000a26 <LoopForever>
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 <ADC_IRQHandler>:
* @retval : None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
8000a40: e7fe b.n 8000a40 <ADC_IRQHandler>
...
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 <getchar>:
8000a50: 4b07 ldr r3, [pc, #28] ; (8000a70 <getchar+0x20>)
8000a52: b510 push {r4, lr}
8000a54: 681c ldr r4, [r3, #0]
8000a56: b124 cbz r4, 8000a62 <getchar+0x12>
8000a58: 69a3 ldr r3, [r4, #24]
8000a5a: b913 cbnz r3, 8000a62 <getchar+0x12>
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 <memset>:
8000abc: 4402 add r2, r0
8000abe: 4603 mov r3, r0
8000ac0: 4293 cmp r3, r2
8000ac2: d100 bne.n 8000ac6 <memset+0xa>
8000ac4: 4770 bx lr
8000ac6: f803 1b01 strb.w r1, [r3], #1
8000aca: e7f9 b.n 8000ac0 <memset+0x4>
08000acc <iprintf>:
8000acc: b40f push {r0, r1, r2, r3}
8000ace: 4b0a ldr r3, [pc, #40] ; (8000af8 <iprintf+0x2c>)
8000ad0: b513 push {r0, r1, r4, lr}
8000ad2: 681c ldr r4, [r3, #0]
8000ad4: b124 cbz r4, 8000ae0 <iprintf+0x14>
8000ad6: 69a3 ldr r3, [r4, #24]
8000ad8: b913 cbnz r3, 8000ae0 <iprintf+0x14>
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 <setvbuf>:
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 <setvbuf+0x17c>)
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 <setvbuf+0x1c>
8000b0e: 69bb ldr r3, [r7, #24]
8000b10: b913 cbnz r3, 8000b18 <setvbuf+0x1c>
8000b12: 4638 mov r0, r7
8000b14: f000 f9e4 bl 8000ee0 <__sinit>
8000b18: 4b58 ldr r3, [pc, #352] ; (8000c7c <setvbuf+0x180>)
8000b1a: 429c cmp r4, r3
8000b1c: d167 bne.n 8000bee <setvbuf+0xf2>
8000b1e: 687c ldr r4, [r7, #4]
8000b20: f1b8 0f02 cmp.w r8, #2
8000b24: d006 beq.n 8000b34 <setvbuf+0x38>
8000b26: f1b8 0f01 cmp.w r8, #1
8000b2a: f200 809f bhi.w 8000c6c <setvbuf+0x170>
8000b2e: 2d00 cmp r5, #0
8000b30: f2c0 809c blt.w 8000c6c <setvbuf+0x170>
8000b34: 6e63 ldr r3, [r4, #100] ; 0x64
8000b36: 07db lsls r3, r3, #31
8000b38: d405 bmi.n 8000b46 <setvbuf+0x4a>
8000b3a: 89a3 ldrh r3, [r4, #12]
8000b3c: 0598 lsls r0, r3, #22
8000b3e: d402 bmi.n 8000b46 <setvbuf+0x4a>
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 <setvbuf+0x68>
8000b52: f104 0344 add.w r3, r4, #68 ; 0x44
8000b56: 4299 cmp r1, r3
8000b58: d002 beq.n 8000b60 <setvbuf+0x64>
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 <setvbuf+0x7c>
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 <setvbuf+0x168>
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 <setvbuf+0x106>
8000ba0: 9d00 ldr r5, [sp, #0]
8000ba2: 4628 mov r0, r5
8000ba4: f000 fafe bl 80011a4 <malloc>
8000ba8: 4606 mov r6, r0
8000baa: 2800 cmp r0, #0
8000bac: d155 bne.n 8000c5a <setvbuf+0x15e>
8000bae: f8dd 9000 ldr.w r9, [sp]
8000bb2: 45a9 cmp r9, r5
8000bb4: d14a bne.n 8000c4c <setvbuf+0x150>
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 <setvbuf+0xea>
8000bda: f413 7f00 tst.w r3, #512 ; 0x200
8000bde: d102 bne.n 8000be6 <setvbuf+0xea>
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 <setvbuf+0x184>)
8000bf0: 429c cmp r4, r3
8000bf2: d101 bne.n 8000bf8 <setvbuf+0xfc>
8000bf4: 68bc ldr r4, [r7, #8]
8000bf6: e793 b.n 8000b20 <setvbuf+0x24>
8000bf8: 4b22 ldr r3, [pc, #136] ; (8000c84 <setvbuf+0x188>)
8000bfa: 429c cmp r4, r3
8000bfc: bf08 it eq
8000bfe: 68fc ldreq r4, [r7, #12]
8000c00: e78e b.n 8000b20 <setvbuf+0x24>
8000c02: 2e00 cmp r6, #0
8000c04: d0cd beq.n 8000ba2 <setvbuf+0xa6>
8000c06: 69bb ldr r3, [r7, #24]
8000c08: b913 cbnz r3, 8000c10 <setvbuf+0x114>
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 <setvbuf+0x16c>
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 <setvbuf+0x176>
8000c46: f412 7f00 tst.w r2, #512 ; 0x200
8000c4a: e7c8 b.n 8000bde <setvbuf+0xe2>
8000c4c: 4648 mov r0, r9
8000c4e: f000 faa9 bl 80011a4 <malloc>
8000c52: 4606 mov r6, r0
8000c54: 2800 cmp r0, #0
8000c56: d0ae beq.n 8000bb6 <setvbuf+0xba>
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 <setvbuf+0x10a>
8000c64: 2500 movs r5, #0
8000c66: e7a8 b.n 8000bba <setvbuf+0xbe>
8000c68: 60a3 str r3, [r4, #8]
8000c6a: e7e8 b.n 8000c3e <setvbuf+0x142>
8000c6c: f04f 35ff mov.w r5, #4294967295
8000c70: e7b9 b.n 8000be6 <setvbuf+0xea>
8000c72: 2500 movs r5, #0
8000c74: e7b7 b.n 8000be6 <setvbuf+0xea>
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 <fflush>:
8000e0c: 4601 mov r1, r0
8000e0e: b920 cbnz r0, 8000e1a <fflush+0xe>
8000e10: 4b04 ldr r3, [pc, #16] ; (8000e24 <fflush+0x18>)
8000e12: 4905 ldr r1, [pc, #20] ; (8000e28 <fflush+0x1c>)
8000e14: 6818 ldr r0, [r3, #0]
8000e16: f000 b8fe b.w 8001016 <_fwalk_reent>
8000e1a: 4b04 ldr r3, [pc, #16] ; (8000e2c <fflush+0x20>)
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 <std>:
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 <memset>
8000e52: 4b05 ldr r3, [pc, #20] ; (8000e68 <std+0x38>)
8000e54: 6263 str r3, [r4, #36] ; 0x24
8000e56: 4b05 ldr r3, [pc, #20] ; (8000e6c <std+0x3c>)
8000e58: 62a3 str r3, [r4, #40] ; 0x28
8000e5a: 4b05 ldr r3, [pc, #20] ; (8000e70 <std+0x40>)
8000e5c: 62e3 str r3, [r4, #44] ; 0x2c
8000e5e: 4b05 ldr r3, [pc, #20] ; (8000e74 <std+0x44>)
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 <memset>
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 <std>
8000f2c: 68a0 ldr r0, [r4, #8]
8000f2e: 2201 movs r2, #1
8000f30: 2109 movs r1, #9
8000f32: f7ff ff7d bl 8000e30 <std>
8000f36: 68e0 ldr r0, [r4, #12]
8000f38: 2202 movs r2, #2
8000f3a: 2112 movs r1, #18
8000f3c: f7ff ff78 bl 8000e30 <std>
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 <memset>
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 <malloc>:
80011a4: 4b02 ldr r3, [pc, #8] ; (80011b0 <malloc+0xc>)
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 <memchr>
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 <memchr>
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 <memchr>
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 <memchr>
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 <lflush>:
8001c4c: 8983 ldrh r3, [r0, #12]
8001c4e: f003 0309 and.w r3, r3, #9
8001c52: 2b09 cmp r3, #9
8001c54: d101 bne.n 8001c5a <lflush+0xe>
8001c56: f7ff b8d9 b.w 8000e0c <fflush>
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