3581 lines
130 KiB
Plaintext
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
|