Heap usage with Ubuntus packaged ARM Toolchain
Expected (with Toolchain downloaded from ARM)
user@vm$ which arm-none-eabi-gcc
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc
user@vm$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 9-2019-q4-major) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599]
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
user@vm$ cd ~/modm2/examples/nucleo_f411re/blink/
user@vm$ lbuild build
[...]
user@vm:$ scons -j4
[...]
Create Library· /home/user/modm2/build/nucleo_f411re/blink/release/modm/libmodm.a
Indexing······· /home/user/modm2/build/nucleo_f411re/blink/release/modm/libmodm.a
Linking········ /home/user/modm2/build/nucleo_f411re/blink/release/blink.elf
Memory usage··· /home/user/modm2/build/nucleo_f411re/blink/release/blink.elf
Program: 4.0 KiB (0.8% used)
(.build_id + .data + .fastcode + .fastdata + .hardware_init + .rodata +
.table.copy.intern + .table.heap + .table.zero.intern + .text + .vector_rom)
Data: 5.2 KiB (4.1% used) = 2256 B static (1.7%) + 3072 B stack (2.3%)
(.bss + .data + .fastdata + .noinit + .stack)
Heap: 122.8 KiB (95.9% available)
(.heap1)
scons: done building targets.
Reality (with Ubuntus Toolchain)
user@vm$ uname -a
Linux vm 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
user@vm$ which arm-none-eabi-gcc
/usr/bin/arm-none-eabi-gcc
user@vm$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599]
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
user@vm$ cd ~/modm/examples/nucleo_f411re/blink/
user@vm$ lbuild build
[...]
user@vm$ scons -j4
[...]
Create Library· /home/user/modm/build/nucleo_f411re/blink/release/modm/libmodm.a
Indexing······· /home/user/modm/build/nucleo_f411re/blink/release/modm/libmodm.a
Linking········ /home/user/modm/build/nucleo_f411re/blink/release/blink.elf
`_sbrk_r' referenced in section `.text' of /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(lib_a-nano-mallocr.o): defined in discarded section `.Heap_is_not_implemented!__Please_include_the__modm:platform:heap__module_in_your_project!' of /home/user/modm/build/nucleo_f411re/blink/release/modm/libmodm.a(no_heap.o)
`_sbrk_r' referenced in section `.text' of /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(lib_a-nano-mallocr.o): defined in discarded section `.Heap_is_not_implemented!__Please_include_the__modm:platform:heap__module_in_your_project!' of /home/user/modm/build/nucleo_f411re/blink/release/modm/libmodm.a(no_heap.o)
`_sbrk_r' referenced in section `.text' of /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(lib_a-nano-mallocr.o): defined in discarded section `.Heap_is_not_implemented!__Please_include_the__modm:platform:heap__module_in_your_project!' of /home/user/modm/build/nucleo_f411re/blink/release/modm/libmodm.a(no_heap.o)
collect2: error: ld returned 1 exit status
scons: *** [/home/user/modm/build/nucleo_f411re/blink/release/blink.elf] Error 1
scons: building terminated because of errors.
After enabling <module>modm:platform:heap</module>:
user@vm$ gedit project.xml
user@vm$ lbuild build
[...]
user@vm$ scons -j4
[...]
Create Library· /home/user/modm/build/nucleo_f411re/blink/release/modm/libmodm.a
Indexing······· /home/user/modm/build/nucleo_f411re/blink/release/modm/libmodm.a
Linking········ /home/user/modm/build/nucleo_f411re/blink/release/blink.elf
Memory usage··· /home/user/modm/build/nucleo_f411re/blink/release/blink.elf
Program: 5.0 KiB (1.0% used)
(.build_id + .data + .fastcode + .fastdata + .hardware_init + .rodata +
.table.copy.intern + .table.heap + .table.zero.intern + .text + .vector_rom)
Data: 5.3 KiB (4.1% used) = 2316 B static (1.8%) + 3072 B stack (2.3%)
(.bss + .data + .fastdata + .stack)
Heap: 122.7 KiB (95.9% available)
(.heap1)
scons: done building targets.
My fedora workstation with arm-none-eabi-gcc-cs
Works without any problems, and uses less static memory compared to ARMs GCC?!
rleh@fedora$ which arm-none-eabi-gcc
/usr/bin/arm-none-eabi-gcc
rleh@fedora$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (Fedora 9.2.0-4.fc32) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
rleh@fedora$ cd /examples/nucleo_f411re/blink/
rleh@fedora$ lbuild build
[...]
rleh@fedora$ scons -j4
[...]
Create Library· .../modm/build/nucleo_f411re/blink/release/modm/libmodm.a
Indexing······· .../modm/build/nucleo_f411re/blink/release/modm/libmodm.a
Linking········ .../modm/build/nucleo_f411re/blink/release/blink.elf
Memory usage··· .../modm/build/nucleo_f411re/blink/release/blink.elf
Program: 4.0 KiB (0.8% used)
(.build_id + .data + .fastcode + .fastdata + .hardware_init + .rodata +
.table.copy.intern + .table.heap + .table.zero.intern + .text + .vector_rom)
Data: 5.2 KiB (4.1% used) = 2244 B static (1.7%) + 3072 B stack (2.3%)
(.bss + .data + .fastdata + .stack)
Heap: 122.8 KiB (95.9% available)
(.heap1)
scons: done building targets.
Both objdumps from blink example with added <module>modm:platform:heap</module> (for better comparison):
arm-none-eabi-objdump -d blink.elf (ARM Toolchain; WITH heap module enabled)
arm-none-eabi-objdump -d blink.elf (ARM Toolchain; WITH heap module enabled)
/home/user/modm2/build/nucleo_f411re/blink/release/blink.elf: file format elf32-littlearm
Disassembly of section .text:
080001a0 <_ZN4modm8IOStream4endlEv>:
80001a0: 2300 movs r3, #0
80001a2: b510 push {r4, lr}
80001a4: 4604 mov r4, r0
80001a6: 6043 str r3, [r0, #4]
80001a8: 6800 ldr r0, [r0, #0]
80001aa: 6803 ldr r3, [r0, #0]
80001ac: 210a movs r1, #10
80001ae: 689b ldr r3, [r3, #8]
80001b0: 4798 blx r3
80001b2: 4620 mov r0, r4
80001b4: bd10 pop {r4, pc}
080001b6 <_ZN4modm8IOStreamlsEPKc>:
80001b6: b510 push {r4, lr}
80001b8: 4604 mov r4, r0
80001ba: 6800 ldr r0, [r0, #0]
80001bc: 6803 ldr r3, [r0, #0]
80001be: 68db ldr r3, [r3, #12]
80001c0: 4798 blx r3
80001c2: 4620 mov r0, r4
80001c4: bd10 pop {r4, pc}
...
080001c8 <_ZN5Board11SystemClock6enableEv>:
80001c8: b507 push {r0, r1, r2, lr}
80001ca: f44f 6000 mov.w r0, #2048 ; 0x800
80001ce: f000 fcb5 bl 8000b3c <_ZN4modm8platform3Rcc19enableInternalClockEm>
80001d2: 4b1d ldr r3, [pc, #116] ; (8000248 <_ZN5Board11SystemClock6enableEv+0x80>)
80001d4: 6818 ldr r0, [r3, #0]
80001d6: 9000 str r0, [sp, #0]
80001d8: 889b ldrh r3, [r3, #4]
80001da: f8ad 3004 strh.w r3, [sp, #4]
80001de: f44f 6200 mov.w r2, #2048 ; 0x800
80001e2: 4669 mov r1, sp
80001e4: 2000 movs r0, #0
80001e6: f000 fcbd bl 8000b64 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm>
80001ea: 4a18 ldr r2, [pc, #96] ; (800024c <_ZN5Board11SystemClock6enableEv+0x84>)
80001ec: 6813 ldr r3, [r2, #0]
80001ee: f023 030f bic.w r3, r3, #15
80001f2: f443 63e0 orr.w r3, r3, #1792 ; 0x700
80001f6: f043 0303 orr.w r3, r3, #3
80001fa: 6013 str r3, [r2, #0]
80001fc: f3bf 8f4f dsb sy
8000200: f3bf 8f6f isb sy
8000204: f44f 6100 mov.w r1, #2048 ; 0x800
8000208: 2002 movs r0, #2
800020a: f000 fcdb bl 8000bc4 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm>
800020e: 4b10 ldr r3, [pc, #64] ; (8000250 <_ZN5Board11SystemClock6enableEv+0x88>)
8000210: 689a ldr r2, [r3, #8]
8000212: f022 02f0 bic.w r2, r2, #240 ; 0xf0
8000216: 609a str r2, [r3, #8]
8000218: 689a ldr r2, [r3, #8]
800021a: f422 52e0 bic.w r2, r2, #7168 ; 0x1c00
800021e: f442 5280 orr.w r2, r2, #4096 ; 0x1000
8000222: 609a str r2, [r3, #8]
8000224: 689a ldr r2, [r3, #8]
8000226: f422 4260 bic.w r2, r2, #57344 ; 0xe000
800022a: 609a str r2, [r3, #8]
800022c: 4b09 ldr r3, [pc, #36] ; (8000254 <_ZN5Board11SystemClock6enableEv+0x8c>)
800022e: 2260 movs r2, #96 ; 0x60
8000230: 801a strh r2, [r3, #0]
8000232: 4b09 ldr r3, [pc, #36] ; (8000258 <_ZN5Board11SystemClock6enableEv+0x90>)
8000234: 4a09 ldr r2, [pc, #36] ; (800025c <_ZN5Board11SystemClock6enableEv+0x94>)
8000236: 601a str r2, [r3, #0]
8000238: 4b09 ldr r3, [pc, #36] ; (8000260 <_ZN5Board11SystemClock6enableEv+0x98>)
800023a: 221f movs r2, #31
800023c: 2001 movs r0, #1
800023e: 801a strh r2, [r3, #0]
8000240: b003 add sp, #12
8000242: f85d fb04 ldr.w pc, [sp], #4
8000246: bf00 nop
8000248: 080010ec .word 0x080010ec
800024c: 40023c00 .word 0x40023c00
8000250: 40023800 .word 0x40023800
8000254: 20001506 .word 0x20001506
8000258: 20001508 .word 0x20001508
800025c: 05b8d800 .word 0x05b8d800
8000260: 20001504 .word 0x20001504
08000264 <_ZN5Board10initializeEv>:
8000264: b510 push {r4, lr}
8000266: f7ff ffaf bl 80001c8 <_ZN5Board11SystemClock6enableEv>
800026a: 4b52 ldr r3, [pc, #328] ; (80003b4 <_ZN5Board10initializeEv+0x150>)
800026c: 4a52 ldr r2, [pc, #328] ; (80003b8 <_ZN5Board10initializeEv+0x154>)
800026e: 601a str r2, [r3, #0]
8000270: 4b52 ldr r3, [pc, #328] ; (80003bc <_ZN5Board10initializeEv+0x158>)
8000272: 4a53 ldr r2, [pc, #332] ; (80003c0 <_ZN5Board10initializeEv+0x15c>)
8000274: 4853 ldr r0, [pc, #332] ; (80003c4 <_ZN5Board10initializeEv+0x160>)
8000276: 601a str r2, [r3, #0]
8000278: 2101 movs r1, #1
800027a: f000 fccb bl 8000c14 <_ZN4modm8platform12SysTickTimer6enableEmb>
800027e: 4b52 ldr r3, [pc, #328] ; (80003c8 <_ZN5Board10initializeEv+0x164>)
8000280: 689a ldr r2, [r3, #8]
8000282: f022 0230 bic.w r2, r2, #48 ; 0x30
8000286: f042 0220 orr.w r2, r2, #32
800028a: 609a str r2, [r3, #8]
800028c: 685a ldr r2, [r3, #4]
800028e: f022 0204 bic.w r2, r2, #4
8000292: 605a str r2, [r3, #4]
8000294: 681a ldr r2, [r3, #0]
8000296: f022 0230 bic.w r2, r2, #48 ; 0x30
800029a: f042 0210 orr.w r2, r2, #16
800029e: 601a str r2, [r3, #0]
80002a0: 68da ldr r2, [r3, #12]
80002a2: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002a6: f042 0240 orr.w r2, r2, #64 ; 0x40
80002aa: 60da str r2, [r3, #12]
80002ac: 681a ldr r2, [r3, #0]
80002ae: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002b2: 601a str r2, [r3, #0]
80002b4: 685a ldr r2, [r3, #4]
80002b6: f022 0208 bic.w r2, r2, #8
80002ba: 605a str r2, [r3, #4]
80002bc: 689a ldr r2, [r3, #8]
80002be: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002c2: 609a str r2, [r3, #8]
80002c4: 6a1a ldr r2, [r3, #32]
80002c6: f422 6270 bic.w r2, r2, #3840 ; 0xf00
80002ca: f442 62e0 orr.w r2, r2, #1792 ; 0x700
80002ce: 621a str r2, [r3, #32]
80002d0: 681a ldr r2, [r3, #0]
80002d2: f022 0230 bic.w r2, r2, #48 ; 0x30
80002d6: f042 0220 orr.w r2, r2, #32
80002da: 601a str r2, [r3, #0]
80002dc: 6a1a ldr r2, [r3, #32]
80002de: f422 4270 bic.w r2, r2, #61440 ; 0xf000
80002e2: f442 42e0 orr.w r2, r2, #28672 ; 0x7000
80002e6: 621a str r2, [r3, #32]
80002e8: 681a ldr r2, [r3, #0]
80002ea: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002ee: f042 0280 orr.w r2, r2, #128 ; 0x80
80002f2: 601a str r2, [r3, #0]
80002f4: f3bf 8f4f dsb sy
80002f8: f503 5360 add.w r3, r3, #14336 ; 0x3800
80002fc: 6c1a ldr r2, [r3, #64] ; 0x40
80002fe: 0392 lsls r2, r2, #14
8000300: d40f bmi.n 8000322 <_ZN5Board10initializeEv+0xbe>
8000302: 6c1a ldr r2, [r3, #64] ; 0x40
8000304: f442 3200 orr.w r2, r2, #131072 ; 0x20000
8000308: 641a str r2, [r3, #64] ; 0x40
800030a: f3bf 8f4f dsb sy
800030e: 6a1a ldr r2, [r3, #32]
8000310: f442 3200 orr.w r2, r2, #131072 ; 0x20000
8000314: 621a str r2, [r3, #32]
8000316: f3bf 8f4f dsb sy
800031a: 6a1a ldr r2, [r3, #32]
800031c: f422 3200 bic.w r2, r2, #131072 ; 0x20000
8000320: 621a str r2, [r3, #32]
8000322: f3bf 8f4f dsb sy
8000326: 4c29 ldr r4, [pc, #164] ; (80003cc <_ZN5Board10initializeEv+0x168>)
8000328: 68e3 ldr r3, [r4, #12]
800032a: f443 5300 orr.w r3, r3, #8192 ; 0x2000
800032e: 60e3 str r3, [r4, #12]
8000330: 68e3 ldr r3, [r4, #12]
8000332: f423 5300 bic.w r3, r3, #8192 ; 0x2000
8000336: 60e3 str r3, [r4, #12]
8000338: f240 13a1 movw r3, #417 ; 0x1a1
800033c: 60a3 str r3, [r4, #8]
800033e: 68e3 ldr r3, [r4, #12]
8000340: f423 53b0 bic.w r3, r3, #5632 ; 0x1600
8000344: 60e3 str r3, [r4, #12]
8000346: 68e3 ldr r3, [r4, #12]
8000348: f423 4300 bic.w r3, r3, #32768 ; 0x8000
800034c: 60e3 str r3, [r4, #12]
800034e: 68e3 ldr r3, [r4, #12]
8000350: f443 5300 orr.w r3, r3, #8192 ; 0x2000
8000354: 60e3 str r3, [r4, #12]
8000356: 200c movs r0, #12
8000358: f000 fdfa bl 8000f50 <_ZN4modm8platform6Usart218initializeBufferedEm>
800035c: 68e3 ldr r3, [r4, #12]
800035e: 491c ldr r1, [pc, #112] ; (80003d0 <_ZN5Board10initializeEv+0x16c>)
8000360: f043 0308 orr.w r3, r3, #8
8000364: 60e3 str r3, [r4, #12]
8000366: 68e3 ldr r3, [r4, #12]
8000368: f043 0304 orr.w r3, r3, #4
800036c: 60e3 str r3, [r4, #12]
800036e: 4b19 ldr r3, [pc, #100] ; (80003d4 <_ZN5Board10initializeEv+0x170>)
8000370: 681a ldr r2, [r3, #0]
8000372: f022 6240 bic.w r2, r2, #201326592 ; 0xc000000
8000376: 601a str r2, [r3, #0]
8000378: 685a ldr r2, [r3, #4]
800037a: f422 5200 bic.w r2, r2, #8192 ; 0x2000
800037e: 605a str r2, [r3, #4]
8000380: 689a ldr r2, [r3, #8]
8000382: f022 6240 bic.w r2, r2, #201326592 ; 0xc000000
8000386: 609a str r2, [r3, #8]
8000388: f5a3 434c sub.w r3, r3, #52224 ; 0xcc00
800038c: 689a ldr r2, [r3, #8]
800038e: f442 5200 orr.w r2, r2, #8192 ; 0x2000
8000392: 609a str r2, [r3, #8]
8000394: 68da ldr r2, [r3, #12]
8000396: f422 5200 bic.w r2, r2, #8192 ; 0x2000
800039a: 60da str r2, [r3, #12]
800039c: 694a ldr r2, [r1, #20]
800039e: f022 02f0 bic.w r2, r2, #240 ; 0xf0
80003a2: f042 0220 orr.w r2, r2, #32
80003a6: 614a str r2, [r1, #20]
80003a8: 681a ldr r2, [r3, #0]
80003aa: f442 5200 orr.w r2, r2, #8192 ; 0x2000
80003ae: 601a str r2, [r3, #0]
80003b0: bd10 pop {r4, pc}
80003b2: bf00 nop
80003b4: 20000c6c .word 0x20000c6c
80003b8: 15555555 .word 0x15555555
80003bc: 20000c70 .word 0x20000c70
80003c0: 00057619 .word 0x00057619
80003c4: 002dc6bf .word 0x002dc6bf
80003c8: 40020000 .word 0x40020000
80003cc: 40004400 .word 0x40004400
80003d0: 40013800 .word 0x40013800
80003d4: 40020800 .word 0x40020800
080003d8 <main>:
80003d8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
80003dc: 4c33 ldr r4, [pc, #204] ; (80004ac <main+0xd4>)
80003de: f8df 80f0 ldr.w r8, [pc, #240] ; 80004d0 <main+0xf8>
80003e2: f8df 90f0 ldr.w r9, [pc, #240] ; 80004d4 <main+0xfc>
80003e6: f7ff ff3d bl 8000264 <_ZN5Board10initializeEv>
80003ea: 6823 ldr r3, [r4, #0]
80003ec: 4930 ldr r1, [pc, #192] ; (80004b0 <main+0xd8>)
80003ee: 4831 ldr r0, [pc, #196] ; (80004b4 <main+0xdc>)
80003f0: f423 6340 bic.w r3, r3, #3072 ; 0xc00
80003f4: f443 6380 orr.w r3, r3, #1024 ; 0x400
80003f8: 6023 str r3, [r4, #0]
80003fa: f7ff fedc bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80003fe: f7ff fecf bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000402: 492d ldr r1, [pc, #180] ; (80004b8 <main+0xe0>)
8000404: 482d ldr r0, [pc, #180] ; (80004bc <main+0xe4>)
8000406: f7ff fed6 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800040a: f7ff fec9 bl 80001a0 <_ZN4modm8IOStream4endlEv>
800040e: 492c ldr r1, [pc, #176] ; (80004c0 <main+0xe8>)
8000410: 482c ldr r0, [pc, #176] ; (80004c4 <main+0xec>)
8000412: f7ff fed0 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000416: f7ff fec3 bl 80001a0 <_ZN4modm8IOStream4endlEv>
800041a: 492b ldr r1, [pc, #172] ; (80004c8 <main+0xf0>)
800041c: 482b ldr r0, [pc, #172] ; (80004cc <main+0xf4>)
800041e: f7ff feca bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000422: f7ff febd bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000426: f04f 0a00 mov.w sl, #0
800042a: 6963 ldr r3, [r4, #20]
800042c: 069b lsls r3, r3, #26
800042e: bf4c ite mi
8000430: f44f 1300 movmi.w r3, #2097152 ; 0x200000
8000434: 2320 movpl r3, #32
8000436: 61a3 str r3, [r4, #24]
8000438: f8d8 3010 ldr.w r3, [r8, #16]
800043c: f413 5f00 tst.w r3, #8192 ; 0x2000
8000440: bf08 it eq
8000442: 2064 moveq r0, #100 ; 0x64
8000444: f44f 737a mov.w r3, #1000 ; 0x3e8
8000448: bf18 it ne
800044a: f44f 70fa movne.w r0, #500 ; 0x1f4
800044e: 4358 muls r0, r3
8000450: f000 fe96 bl 8001180 <__fastcode_load>
8000454: 4819 ldr r0, [pc, #100] ; (80004bc <main+0xe4>)
8000456: 4649 mov r1, r9
8000458: f7ff fead bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800045c: 6843 ldr r3, [r0, #4]
800045e: 4605 mov r5, r0
8000460: f10a 0701 add.w r7, sl, #1
8000464: b93b cbnz r3, 8000476 <main+0x9e>
8000466: 4651 mov r1, sl
8000468: f000 fb52 bl 8000b10 <_ZN4modm8IOStream12writeIntegerEm>
800046c: 4628 mov r0, r5
800046e: f7ff fe97 bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000472: 46ba mov sl, r7
8000474: e7d9 b.n 800042a <main+0x52>
8000476: 2b02 cmp r3, #2
8000478: f04f 0618 mov.w r6, #24
800047c: d10a bne.n 8000494 <main+0xbc>
800047e: fa2a f106 lsr.w r1, sl, r6
8000482: 3e08 subs r6, #8
8000484: b2c9 uxtb r1, r1
8000486: 4628 mov r0, r5
8000488: b2f6 uxtb r6, r6
800048a: f000 f9fd bl 8000888 <_ZN4modm8IOStream8writeBinEh>
800048e: 2ef8 cmp r6, #248 ; 0xf8
8000490: d1f5 bne.n 800047e <main+0xa6>
8000492: e7eb b.n 800046c <main+0x94>
8000494: fa2a f106 lsr.w r1, sl, r6
8000498: 3e08 subs r6, #8
800049a: b2c9 uxtb r1, r1
800049c: 4628 mov r0, r5
800049e: b2f6 uxtb r6, r6
80004a0: f000 f9e6 bl 8000870 <_ZN4modm8IOStream8writeHexEh>
80004a4: 2ef8 cmp r6, #248 ; 0xf8
80004a6: d1f5 bne.n 8000494 <main+0xbc>
80004a8: e7e0 b.n 800046c <main+0x94>
80004aa: bf00 nop
80004ac: 40020000 .word 0x40020000
80004b0: 080010cc .word 0x080010cc
80004b4: 20000c7c .word 0x20000c7c
80004b8: 080010d2 .word 0x080010d2
80004bc: 20000c74 .word 0x20000c74
80004c0: 080010d7 .word 0x080010d7
80004c4: 20000c8c .word 0x20000c8c
80004c8: 080010df .word 0x080010df
80004cc: 20000c84 .word 0x20000c84
80004d0: 40020800 .word 0x40020800
80004d4: 080010e5 .word 0x080010e5
080004d8 <__aeabi_atexit>:
80004d8: 2000 movs r0, #0
80004da: 4770 bx lr
080004dc <_ZdlPvj>:
80004dc: f000 bdee b.w 80010bc <free>
080004e0 <block_next>:
80004e0: 6843 ldr r3, [r0, #4]
80004e2: f023 0303 bic.w r3, r3, #3
80004e6: 4418 add r0, r3
80004e8: 3004 adds r0, #4
80004ea: 4770 bx lr
080004ec <block_link_next>:
80004ec: b508 push {r3, lr}
80004ee: 4602 mov r2, r0
80004f0: f7ff fff6 bl 80004e0 <block_next>
80004f4: 6002 str r2, [r0, #0]
80004f6: bd08 pop {r3, pc}
080004f8 <remove_free_block>:
80004f8: b570 push {r4, r5, r6, lr}
80004fa: e9d1 4502 ldrd r4, r5, [r1, #8]
80004fe: 60e5 str r5, [r4, #12]
8000500: 60ac str r4, [r5, #8]
8000502: eb03 1502 add.w r5, r3, r2, lsl #4
8000506: eb00 0585 add.w r5, r0, r5, lsl #2
800050a: 6c6e ldr r6, [r5, #68] ; 0x44
800050c: 428e cmp r6, r1
800050e: d112 bne.n 8000536 <remove_free_block+0x3e>
8000510: 42a0 cmp r0, r4
8000512: 646c str r4, [r5, #68] ; 0x44
8000514: d10f bne.n 8000536 <remove_free_block+0x3e>
8000516: eb00 0582 add.w r5, r0, r2, lsl #2
800051a: 2101 movs r1, #1
800051c: 696c ldr r4, [r5, #20]
800051e: fa01 f303 lsl.w r3, r1, r3
8000522: ea24 0303 bic.w r3, r4, r3
8000526: 616b str r3, [r5, #20]
8000528: b92b cbnz r3, 8000536 <remove_free_block+0x3e>
800052a: fa01 f202 lsl.w r2, r1, r2
800052e: 6901 ldr r1, [r0, #16]
8000530: ea21 0202 bic.w r2, r1, r2
8000534: 6102 str r2, [r0, #16]
8000536: bd70 pop {r4, r5, r6, pc}
08000538 <mapping_insert>:
8000538: 283f cmp r0, #63 ; 0x3f
800053a: b510 push {r4, lr}
800053c: bf83 ittte hi
800053e: fab0 f380 clzhi r3, r0
8000542: f1c3 041b rsbhi r4, r3, #27
8000546: 40e0 lsrhi r0, r4
8000548: 1080 asrls r0, r0, #2
800054a: bf92 itee ls
800054c: 2300 movls r3, #0
800054e: f080 0010 eorhi.w r0, r0, #16
8000552: f1c3 031a rsbhi r3, r3, #26
8000556: 600b str r3, [r1, #0]
8000558: 6010 str r0, [r2, #0]
800055a: bd10 pop {r4, pc}
0800055c <block_insert>:
800055c: b537 push {r0, r1, r2, r4, r5, lr}
800055e: 4604 mov r4, r0
8000560: 6848 ldr r0, [r1, #4]
8000562: 460d mov r5, r1
8000564: aa01 add r2, sp, #4
8000566: 4669 mov r1, sp
8000568: f020 0003 bic.w r0, r0, #3
800056c: f7ff ffe4 bl 8000538 <mapping_insert>
8000570: e9dd 0100 ldrd r0, r1, [sp]
8000574: eb01 1200 add.w r2, r1, r0, lsl #4
8000578: eb04 0282 add.w r2, r4, r2, lsl #2
800057c: 6c53 ldr r3, [r2, #68] ; 0x44
800057e: e9c5 3402 strd r3, r4, [r5, #8]
8000582: 60dd str r5, [r3, #12]
8000584: 6455 str r5, [r2, #68] ; 0x44
8000586: 6922 ldr r2, [r4, #16]
8000588: 2301 movs r3, #1
800058a: fa03 f500 lsl.w r5, r3, r0
800058e: 432a orrs r2, r5
8000590: 6122 str r2, [r4, #16]
8000592: eb04 0480 add.w r4, r4, r0, lsl #2
8000596: 408b lsls r3, r1
8000598: 6962 ldr r2, [r4, #20]
800059a: 4313 orrs r3, r2
800059c: 6163 str r3, [r4, #20]
800059e: b003 add sp, #12
80005a0: bd30 pop {r4, r5, pc}
080005a2 <block_remove>:
80005a2: b537 push {r0, r1, r2, r4, r5, lr}
80005a4: 4605 mov r5, r0
80005a6: 6848 ldr r0, [r1, #4]
80005a8: 460c mov r4, r1
80005aa: aa01 add r2, sp, #4
80005ac: 4669 mov r1, sp
80005ae: f020 0003 bic.w r0, r0, #3
80005b2: f7ff ffc1 bl 8000538 <mapping_insert>
80005b6: e9dd 2300 ldrd r2, r3, [sp]
80005ba: 4621 mov r1, r4
80005bc: 4628 mov r0, r5
80005be: f7ff ff9b bl 80004f8 <remove_free_block>
80005c2: b003 add sp, #12
80005c4: bd30 pop {r4, r5, pc}
080005c6 <block_merge_next>:
80005c6: b538 push {r3, r4, r5, lr}
80005c8: 4602 mov r2, r0
80005ca: 4608 mov r0, r1
80005cc: 460c mov r4, r1
80005ce: f7ff ff87 bl 80004e0 <block_next>
80005d2: 6843 ldr r3, [r0, #4]
80005d4: 07db lsls r3, r3, #31
80005d6: 4605 mov r5, r0
80005d8: d50d bpl.n 80005f6 <block_merge_next+0x30>
80005da: 4601 mov r1, r0
80005dc: 4610 mov r0, r2
80005de: f7ff ffe0 bl 80005a2 <block_remove>
80005e2: 686b ldr r3, [r5, #4]
80005e4: 6862 ldr r2, [r4, #4]
80005e6: f023 0303 bic.w r3, r3, #3
80005ea: 3204 adds r2, #4
80005ec: 4413 add r3, r2
80005ee: 6063 str r3, [r4, #4]
80005f0: 4620 mov r0, r4
80005f2: f7ff ff7b bl 80004ec <block_link_next>
80005f6: 4620 mov r0, r4
80005f8: bd38 pop {r3, r4, r5, pc}
...
080005fc <tlsf_add_pool>:
80005fc: b538 push {r3, r4, r5, lr}
80005fe: 3a08 subs r2, #8
8000600: f011 0303 ands.w r3, r1, #3
8000604: 460c mov r4, r1
8000606: f022 0203 bic.w r2, r2, #3
800060a: d114 bne.n 8000636 <tlsf_add_pool+0x3a>
800060c: 490c ldr r1, [pc, #48] ; (8000640 <tlsf_add_pool+0x44>)
800060e: f1a2 050c sub.w r5, r2, #12
8000612: 428d cmp r5, r1
8000614: d811 bhi.n 800063a <tlsf_add_pool+0x3e>
8000616: 4625 mov r5, r4
8000618: f042 0201 orr.w r2, r2, #1
800061c: f855 3904 ldr.w r3, [r5], #-4
8000620: 606a str r2, [r5, #4]
8000622: 4629 mov r1, r5
8000624: f7ff ff9a bl 800055c <block_insert>
8000628: 4628 mov r0, r5
800062a: f7ff ff5f bl 80004ec <block_link_next>
800062e: 2302 movs r3, #2
8000630: 6043 str r3, [r0, #4]
8000632: 4620 mov r0, r4
8000634: bd38 pop {r3, r4, r5, pc}
8000636: 2400 movs r4, #0
8000638: e7fb b.n 8000632 <tlsf_add_pool+0x36>
800063a: 461c mov r4, r3
800063c: e7f9 b.n 8000632 <tlsf_add_pool+0x36>
800063e: bf00 nop
8000640: 0001fff4 .word 0x0001fff4
08000644 <tlsf_create>:
8000644: f010 0203 ands.w r2, r0, #3
8000648: b530 push {r4, r5, lr}
800064a: d113 bne.n 8000674 <tlsf_create+0x30>
800064c: e9c0 0002 strd r0, r0, [r0, #8]
8000650: 6102 str r2, [r0, #16]
8000652: f100 0114 add.w r1, r0, #20
8000656: f100 0344 add.w r3, r0, #68 ; 0x44
800065a: f500 7451 add.w r4, r0, #836 ; 0x344
800065e: f841 2b04 str.w r2, [r1], #4
8000662: f103 0540 add.w r5, r3, #64 ; 0x40
8000666: f843 0b04 str.w r0, [r3], #4
800066a: 42ab cmp r3, r5
800066c: d1fb bne.n 8000666 <tlsf_create+0x22>
800066e: 429c cmp r4, r3
8000670: d1f5 bne.n 800065e <tlsf_create+0x1a>
8000672: bd30 pop {r4, r5, pc}
8000674: 2000 movs r0, #0
8000676: e7fc b.n 8000672 <tlsf_create+0x2e>
08000678 <tlsf_create_with_pool>:
8000678: b570 push {r4, r5, r6, lr}
800067a: 460e mov r6, r1
800067c: 4605 mov r5, r0
800067e: f7ff ffe1 bl 8000644 <tlsf_create>
8000682: f5a6 7251 sub.w r2, r6, #836 ; 0x344
8000686: 4604 mov r4, r0
8000688: f505 7151 add.w r1, r5, #836 ; 0x344
800068c: f7ff ffb6 bl 80005fc <tlsf_add_pool>
8000690: 4620 mov r0, r4
8000692: bd70 pop {r4, r5, r6, pc}
08000694 <tlsf_free>:
8000694: b570 push {r4, r5, r6, lr}
8000696: 4606 mov r6, r0
8000698: 460c mov r4, r1
800069a: b359 cbz r1, 80006f4 <tlsf_free+0x60>
800069c: f1a1 0508 sub.w r5, r1, #8
80006a0: 4628 mov r0, r5
80006a2: f7ff ff23 bl 80004ec <block_link_next>
80006a6: 6843 ldr r3, [r0, #4]
80006a8: f043 0302 orr.w r3, r3, #2
80006ac: 6043 str r3, [r0, #4]
80006ae: f851 3c04 ldr.w r3, [r1, #-4]
80006b2: f043 0301 orr.w r3, r3, #1
80006b6: f841 3c04 str.w r3, [r1, #-4]
80006ba: 079b lsls r3, r3, #30
80006bc: d510 bpl.n 80006e0 <tlsf_free+0x4c>
80006be: f851 5c08 ldr.w r5, [r1, #-8]
80006c2: 4630 mov r0, r6
80006c4: 4629 mov r1, r5
80006c6: f7ff ff6c bl 80005a2 <block_remove>
80006ca: f854 3c04 ldr.w r3, [r4, #-4]
80006ce: 686a ldr r2, [r5, #4]
80006d0: f023 0303 bic.w r3, r3, #3
80006d4: 4413 add r3, r2
80006d6: 3304 adds r3, #4
80006d8: 606b str r3, [r5, #4]
80006da: 4628 mov r0, r5
80006dc: f7ff ff06 bl 80004ec <block_link_next>
80006e0: 4629 mov r1, r5
80006e2: 4630 mov r0, r6
80006e4: f7ff ff6f bl 80005c6 <block_merge_next>
80006e8: 4601 mov r1, r0
80006ea: 4630 mov r0, r6
80006ec: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
80006f0: f7ff bf34 b.w 800055c <block_insert>
80006f4: bd70 pop {r4, r5, r6, pc}
080006f6 <_ZN4modm8IODevice5writeEPKc>:
80006f6: b538 push {r3, r4, r5, lr}
80006f8: 4604 mov r4, r0
80006fa: 460d mov r5, r1
80006fc: f815 1b01 ldrb.w r1, [r5], #1
8000700: b121 cbz r1, 800070c <_ZN4modm8IODevice5writeEPKc+0x16>
8000702: 6823 ldr r3, [r4, #0]
8000704: 4620 mov r0, r4
8000706: 689b ldr r3, [r3, #8]
8000708: 4798 blx r3
800070a: e7f7 b.n 80006fc <_ZN4modm8IODevice5writeEPKc+0x6>
800070c: bd38 pop {r3, r4, r5, pc}
0800070e <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EED1Ev>:
800070e: 4770 bx lr
08000710 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE4readERc>:
8000710: 4608 mov r0, r1
8000712: f000 bc77 b.w 8001004 <_ZN4modm8platform6Usart24readERh>
08000716 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5flushEv>:
8000716: f000 bc6f b.w 8000ff8 <_ZN4modm8platform6Usart216flushWriteBufferEv>
0800071a <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5writeEc>:
800071a: b510 push {r4, lr}
800071c: 460c mov r4, r1
800071e: 4620 mov r0, r4
8000720: f000 fc28 bl 8000f74 <_ZN4modm8platform6Usart25writeEh>
8000724: 2800 cmp r0, #0
8000726: d0fa beq.n 800071e <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5writeEc+0x4>
8000728: bd10 pop {r4, pc}
0800072a <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EED0Ev>:
800072a: b510 push {r4, lr}
800072c: 2104 movs r1, #4
800072e: 4604 mov r4, r0
8000730: f7ff fed4 bl 80004dc <_ZdlPvj>
8000734: 4620 mov r0, r4
8000736: bd10 pop {r4, pc}
08000738 <modm_abandon>:
8000738: b5f8 push {r3, r4, r5, r6, r7, lr}
800073a: 4605 mov r5, r0
800073c: 492c ldr r1, [pc, #176] ; (80007f0 <modm_abandon+0xb8>)
800073e: 482d ldr r0, [pc, #180] ; (80007f4 <modm_abandon+0xbc>)
8000740: f7ff fd39 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000744: 6829 ldr r1, [r5, #0]
8000746: f7ff fd36 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800074a: 492b ldr r1, [pc, #172] ; (80007f8 <modm_abandon+0xc0>)
800074c: f7ff fd33 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000750: 686b ldr r3, [r5, #4]
8000752: 3301 adds r3, #1
8000754: d016 beq.n 8000784 <modm_abandon+0x4c>
8000756: 4929 ldr r1, [pc, #164] ; (80007fc <modm_abandon+0xc4>)
8000758: 4826 ldr r0, [pc, #152] ; (80007f4 <modm_abandon+0xbc>)
800075a: f7ff fd2c bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800075e: 6869 ldr r1, [r5, #4]
8000760: 4604 mov r4, r0
8000762: f000 f8a3 bl 80008ac <_ZN4modm8IOStream12writePointerEPKv>
8000766: 4620 mov r0, r4
8000768: 4925 ldr r1, [pc, #148] ; (8000800 <modm_abandon+0xc8>)
800076a: f7ff fd24 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800076e: 6843 ldr r3, [r0, #4]
8000770: 686e ldr r6, [r5, #4]
8000772: 4604 mov r4, r0
8000774: bb13 cbnz r3, 80007bc <modm_abandon+0x84>
8000776: 4631 mov r1, r6
8000778: f000 f9ca bl 8000b10 <_ZN4modm8IOStream12writeIntegerEm>
800077c: 4921 ldr r1, [pc, #132] ; (8000804 <modm_abandon+0xcc>)
800077e: 4620 mov r0, r4
8000780: f7ff fd19 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000784: 4c20 ldr r4, [pc, #128] ; (8000808 <modm_abandon+0xd0>)
8000786: 4921 ldr r1, [pc, #132] ; (800080c <modm_abandon+0xd4>)
8000788: 481a ldr r0, [pc, #104] ; (80007f4 <modm_abandon+0xbc>)
800078a: 4e21 ldr r6, [pc, #132] ; (8000810 <modm_abandon+0xd8>)
800078c: f7ff fd13 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000790: 6822 ldr r2, [r4, #0]
8000792: f422 6240 bic.w r2, r2, #3072 ; 0xc00
8000796: f442 6280 orr.w r2, r2, #1024 ; 0x400
800079a: 6022 str r2, [r4, #0]
800079c: 250b movs r5, #11
800079e: 2720 movs r7, #32
80007a0: f644 6020 movw r0, #20000 ; 0x4e20
80007a4: 61a7 str r7, [r4, #24]
80007a6: f000 fceb bl 8001180 <__fastcode_load>
80007aa: f44f 1300 mov.w r3, #2097152 ; 0x200000
80007ae: 61a3 str r3, [r4, #24]
80007b0: 4630 mov r0, r6
80007b2: f000 fce5 bl 8001180 <__fastcode_load>
80007b6: 3d01 subs r5, #1
80007b8: d1f2 bne.n 80007a0 <modm_abandon+0x68>
80007ba: bdf8 pop {r3, r4, r5, r6, r7, pc}
80007bc: 2b02 cmp r3, #2
80007be: f04f 0518 mov.w r5, #24
80007c2: d10a bne.n 80007da <modm_abandon+0xa2>
80007c4: fa26 f105 lsr.w r1, r6, r5
80007c8: 3d08 subs r5, #8
80007ca: b2c9 uxtb r1, r1
80007cc: 4620 mov r0, r4
80007ce: b2ed uxtb r5, r5
80007d0: f000 f85a bl 8000888 <_ZN4modm8IOStream8writeBinEh>
80007d4: 2df8 cmp r5, #248 ; 0xf8
80007d6: d1f5 bne.n 80007c4 <modm_abandon+0x8c>
80007d8: e7d0 b.n 800077c <modm_abandon+0x44>
80007da: fa26 f105 lsr.w r1, r6, r5
80007de: 3d08 subs r5, #8
80007e0: b2c9 uxtb r1, r1
80007e2: 4620 mov r0, r4
80007e4: b2ed uxtb r5, r5
80007e6: f000 f843 bl 8000870 <_ZN4modm8IOStream8writeHexEh>
80007ea: 2df8 cmp r5, #248 ; 0xf8
80007ec: d1f5 bne.n 80007da <modm_abandon+0xa2>
80007ee: e7c5 b.n 800077c <modm_abandon+0x44>
80007f0: 080010f2 .word 0x080010f2
80007f4: 20000c84 .word 0x20000c84
80007f8: 080010fc .word 0x080010fc
80007fc: 080010fe .word 0x080010fe
8000800: 08001102 .word 0x08001102
8000804: 08001105 .word 0x08001105
8000808: 40020000 .word 0x40020000
800080c: 08001107 .word 0x08001107
8000810: 0002bf20 .word 0x0002bf20
08000814 <_GLOBAL__sub_I_loggerDevice>:
8000814: b510 push {r4, lr}
8000816: 4c0a ldr r4, [pc, #40] ; (8000840 <_GLOBAL__sub_I_loggerDevice+0x2c>)
8000818: 4a0a ldr r2, [pc, #40] ; (8000844 <_GLOBAL__sub_I_loggerDevice+0x30>)
800081a: 490b ldr r1, [pc, #44] ; (8000848 <_GLOBAL__sub_I_loggerDevice+0x34>)
800081c: 4620 mov r0, r4
800081e: f7ff fe5b bl 80004d8 <__aeabi_atexit>
8000822: 4a0a ldr r2, [pc, #40] ; (800084c <_GLOBAL__sub_I_loggerDevice+0x38>)
8000824: 2300 movs r3, #0
8000826: 6014 str r4, [r2, #0]
8000828: 6053 str r3, [r2, #4]
800082a: 4a09 ldr r2, [pc, #36] ; (8000850 <_GLOBAL__sub_I_loggerDevice+0x3c>)
800082c: e9c2 4300 strd r4, r3, [r2]
8000830: 4a08 ldr r2, [pc, #32] ; (8000854 <_GLOBAL__sub_I_loggerDevice+0x40>)
8000832: e9c2 4300 strd r4, r3, [r2]
8000836: 4a08 ldr r2, [pc, #32] ; (8000858 <_GLOBAL__sub_I_loggerDevice+0x44>)
8000838: e9c2 4300 strd r4, r3, [r2]
800083c: bd10 pop {r4, pc}
800083e: bf00 nop
8000840: 20000c04 .word 0x20000c04
8000844: 20000c00 .word 0x20000c00
8000848: 0800070f .word 0x0800070f
800084c: 20000c7c .word 0x20000c7c
8000850: 20000c74 .word 0x20000c74
8000854: 20000c8c .word 0x20000c8c
8000858: 20000c84 .word 0x20000c84
0800085c <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>:
800085c: 6800 ldr r0, [r0, #0]
800085e: 6803 ldr r3, [r0, #0]
8000860: 2909 cmp r1, #9
8000862: 689a ldr r2, [r3, #8]
8000864: bf8c ite hi
8000866: 2337 movhi r3, #55 ; 0x37
8000868: 2330 movls r3, #48 ; 0x30
800086a: 4419 add r1, r3
800086c: b2c9 uxtb r1, r1
800086e: 4710 bx r2
08000870 <_ZN4modm8IOStream8writeHexEh>:
8000870: b538 push {r3, r4, r5, lr}
8000872: 4605 mov r5, r0
8000874: 460c mov r4, r1
8000876: 0909 lsrs r1, r1, #4
8000878: f7ff fff0 bl 800085c <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>
800087c: f004 010f and.w r1, r4, #15
8000880: 4628 mov r0, r5
8000882: f7ff ffeb bl 800085c <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>
8000886: bd38 pop {r3, r4, r5, pc}
08000888 <_ZN4modm8IOStream8writeBinEh>:
8000888: b570 push {r4, r5, r6, lr}
800088a: 4606 mov r6, r0
800088c: 460c mov r4, r1
800088e: 2508 movs r5, #8
8000890: 6830 ldr r0, [r6, #0]
8000892: 6803 ldr r3, [r0, #0]
8000894: f014 0f80 tst.w r4, #128 ; 0x80
8000898: bf14 ite ne
800089a: 2131 movne r1, #49 ; 0x31
800089c: 2130 moveq r1, #48 ; 0x30
800089e: 689b ldr r3, [r3, #8]
80008a0: 4798 blx r3
80008a2: 0064 lsls r4, r4, #1
80008a4: 3d01 subs r5, #1
80008a6: b2e4 uxtb r4, r4
80008a8: d1f2 bne.n 8000890 <_ZN4modm8IOStream8writeBinEh+0x8>
80008aa: bd70 pop {r4, r5, r6, pc}
080008ac <_ZN4modm8IOStream12writePointerEPKv>:
80008ac: b570 push {r4, r5, r6, lr}
80008ae: 4605 mov r5, r0
80008b0: 6800 ldr r0, [r0, #0]
80008b2: 6803 ldr r3, [r0, #0]
80008b4: 460e mov r6, r1
80008b6: 689b ldr r3, [r3, #8]
80008b8: 2130 movs r1, #48 ; 0x30
80008ba: 4798 blx r3
80008bc: 6828 ldr r0, [r5, #0]
80008be: 6803 ldr r3, [r0, #0]
80008c0: 2178 movs r1, #120 ; 0x78
80008c2: 689b ldr r3, [r3, #8]
80008c4: 4798 blx r3
80008c6: 2418 movs r4, #24
80008c8: fa26 f104 lsr.w r1, r6, r4
80008cc: 3c08 subs r4, #8
80008ce: b2c9 uxtb r1, r1
80008d0: 4628 mov r0, r5
80008d2: b2e4 uxtb r4, r4
80008d4: f7ff ffcc bl 8000870 <_ZN4modm8IOStream8writeHexEh>
80008d8: 2cf8 cmp r4, #248 ; 0xf8
80008da: d1f5 bne.n 80008c8 <_ZN4modm8IOStream12writePointerEPKv+0x1c>
80008dc: bd70 pop {r4, r5, r6, pc}
080008de <_out_rev>:
80008de: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
80008e2: f8dd 903c ldr.w r9, [sp, #60] ; 0x3c
80008e6: f019 0f03 tst.w r9, #3
80008ea: e9dd 460d ldrd r4, r6, [sp, #52] ; 0x34
80008ee: 4607 mov r7, r0
80008f0: 468b mov fp, r1
80008f2: 4615 mov r5, r2
80008f4: d10b bne.n 800090e <_out_rev+0x30>
80008f6: 46a0 mov r8, r4
80008f8: eba2 0a04 sub.w sl, r2, r4
80008fc: 45b0 cmp r8, r6
80008fe: eb0a 0208 add.w r2, sl, r8
8000902: d314 bcc.n 800092e <_out_rev+0x50>
8000904: 1b32 subs r2, r6, r4
8000906: 42b4 cmp r4, r6
8000908: bf88 it hi
800090a: 2200 movhi r2, #0
800090c: 442a add r2, r5
800090e: 990c ldr r1, [sp, #48] ; 0x30
8000910: eb01 0804 add.w r8, r1, r4
8000914: 4414 add r4, r2
8000916: 42a2 cmp r2, r4
8000918: d011 beq.n 800093e <_out_rev+0x60>
800091a: f102 0a01 add.w sl, r2, #1
800091e: f818 0d01 ldrb.w r0, [r8, #-1]!
8000922: 9301 str r3, [sp, #4]
8000924: 4659 mov r1, fp
8000926: 47b8 blx r7
8000928: 9b01 ldr r3, [sp, #4]
800092a: 4652 mov r2, sl
800092c: e7f3 b.n 8000916 <_out_rev+0x38>
800092e: 4659 mov r1, fp
8000930: 2020 movs r0, #32
8000932: 9301 str r3, [sp, #4]
8000934: f108 0801 add.w r8, r8, #1
8000938: 47b8 blx r7
800093a: 9b01 ldr r3, [sp, #4]
800093c: e7de b.n 80008fc <_out_rev+0x1e>
800093e: f019 0f02 tst.w r9, #2
8000942: d00a beq.n 800095a <_out_rev+0x7c>
8000944: eba4 0905 sub.w r9, r4, r5
8000948: 46c8 mov r8, r9
800094a: 4546 cmp r6, r8
800094c: eb05 0208 add.w r2, r5, r8
8000950: d807 bhi.n 8000962 <_out_rev+0x84>
8000952: 4435 add r5, r6
8000954: 454e cmp r6, r9
8000956: bf28 it cs
8000958: 462c movcs r4, r5
800095a: 4620 mov r0, r4
800095c: b003 add sp, #12
800095e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
8000962: 4659 mov r1, fp
8000964: 2020 movs r0, #32
8000966: 9301 str r3, [sp, #4]
8000968: f108 0801 add.w r8, r8, #1
800096c: 47b8 blx r7
800096e: 9b01 ldr r3, [sp, #4]
8000970: e7eb b.n 800094a <_out_rev+0x6c>
08000972 <_ntoa_format>:
8000972: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
8000976: e9dd 760d ldrd r7, r6, [sp, #52] ; 0x34
800097a: f016 0f02 tst.w r6, #2
800097e: e9dd 5408 ldrd r5, r4, [sp, #32]
8000982: e9dd c80b ldrd ip, r8, [sp, #44] ; 0x2c
8000986: f89d e028 ldrb.w lr, [sp, #40] ; 0x28
800098a: d123 bne.n 80009d4 <_ntoa_format+0x62>
800098c: f006 0901 and.w r9, r6, #1
8000990: b14f cbz r7, 80009a6 <_ntoa_format+0x34>
8000992: f1b9 0f00 cmp.w r9, #0
8000996: d006 beq.n 80009a6 <_ntoa_format+0x34>
8000998: f1be 0f00 cmp.w lr, #0
800099c: d102 bne.n 80009a4 <_ntoa_format+0x32>
800099e: f016 0f0c tst.w r6, #12
80009a2: d000 beq.n 80009a6 <_ntoa_format+0x34>
80009a4: 3f01 subs r7, #1
80009a6: f04f 0a30 mov.w sl, #48 ; 0x30
80009aa: 4544 cmp r4, r8
80009ac: d201 bcs.n 80009b2 <_ntoa_format+0x40>
80009ae: 2c20 cmp r4, #32
80009b0: d10c bne.n 80009cc <_ntoa_format+0x5a>
80009b2: f04f 0a30 mov.w sl, #48 ; 0x30
80009b6: f1b9 0f00 cmp.w r9, #0
80009ba: d00b beq.n 80009d4 <_ntoa_format+0x62>
80009bc: 42bc cmp r4, r7
80009be: d209 bcs.n 80009d4 <_ntoa_format+0x62>
80009c0: 2c1f cmp r4, #31
80009c2: d807 bhi.n 80009d4 <_ntoa_format+0x62>
80009c4: f805 a004 strb.w sl, [r5, r4]
80009c8: 3401 adds r4, #1
80009ca: e7f4 b.n 80009b6 <_ntoa_format+0x44>
80009cc: f805 a004 strb.w sl, [r5, r4]
80009d0: 3401 adds r4, #1
80009d2: e7ea b.n 80009aa <_ntoa_format+0x38>
80009d4: f016 0f10 tst.w r6, #16
80009d8: d01f beq.n 8000a1a <_ntoa_format+0xa8>
80009da: f416 6f80 tst.w r6, #1024 ; 0x400
80009de: d12f bne.n 8000a40 <_ntoa_format+0xce>
80009e0: b374 cbz r4, 8000a40 <_ntoa_format+0xce>
80009e2: 4544 cmp r4, r8
80009e4: d001 beq.n 80009ea <_ntoa_format+0x78>
80009e6: 42bc cmp r4, r7
80009e8: d12a bne.n 8000a40 <_ntoa_format+0xce>
80009ea: f1b4 0801 subs.w r8, r4, #1
80009ee: d026 beq.n 8000a3e <_ntoa_format+0xcc>
80009f0: f1bc 0f10 cmp.w ip, #16
80009f4: d12f bne.n 8000a56 <_ntoa_format+0xe4>
80009f6: 3c02 subs r4, #2
80009f8: f016 0f20 tst.w r6, #32
80009fc: d12d bne.n 8000a5a <_ntoa_format+0xe8>
80009fe: 2c1f cmp r4, #31
8000a00: d815 bhi.n 8000a2e <_ntoa_format+0xbc>
8000a02: f04f 0c78 mov.w ip, #120 ; 0x78
8000a06: f805 c004 strb.w ip, [r5, r4]
8000a0a: 3401 adds r4, #1
8000a0c: 2c1f cmp r4, #31
8000a0e: d80e bhi.n 8000a2e <_ntoa_format+0xbc>
8000a10: f04f 0c30 mov.w ip, #48 ; 0x30
8000a14: f805 c004 strb.w ip, [r5, r4]
8000a18: 3401 adds r4, #1
8000a1a: 2c1f cmp r4, #31
8000a1c: d807 bhi.n 8000a2e <_ntoa_format+0xbc>
8000a1e: f1be 0f00 cmp.w lr, #0
8000a22: d01f beq.n 8000a64 <_ntoa_format+0xf2>
8000a24: f04f 0c2d mov.w ip, #45 ; 0x2d
8000a28: f805 c004 strb.w ip, [r5, r4]
8000a2c: 3401 adds r4, #1
8000a2e: e9cd 760a strd r7, r6, [sp, #40] ; 0x28
8000a32: e9cd 5408 strd r5, r4, [sp, #32]
8000a36: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
8000a3a: f7ff bf50 b.w 80008de <_out_rev>
8000a3e: 4644 mov r4, r8
8000a40: f1bc 0f10 cmp.w ip, #16
8000a44: d0d8 beq.n 80009f8 <_ntoa_format+0x86>
8000a46: f1bc 0f02 cmp.w ip, #2
8000a4a: d1df bne.n 8000a0c <_ntoa_format+0x9a>
8000a4c: 2c1f cmp r4, #31
8000a4e: d8ee bhi.n 8000a2e <_ntoa_format+0xbc>
8000a50: f04f 0c62 mov.w ip, #98 ; 0x62
8000a54: e7d7 b.n 8000a06 <_ntoa_format+0x94>
8000a56: 4644 mov r4, r8
8000a58: e7f5 b.n 8000a46 <_ntoa_format+0xd4>
8000a5a: 2c1f cmp r4, #31
8000a5c: d8e7 bhi.n 8000a2e <_ntoa_format+0xbc>
8000a5e: f04f 0c58 mov.w ip, #88 ; 0x58
8000a62: e7d0 b.n 8000a06 <_ntoa_format+0x94>
8000a64: f016 0f04 tst.w r6, #4
8000a68: d002 beq.n 8000a70 <_ntoa_format+0xfe>
8000a6a: f04f 0c2b mov.w ip, #43 ; 0x2b
8000a6e: e7db b.n 8000a28 <_ntoa_format+0xb6>
8000a70: f016 0f08 tst.w r6, #8
8000a74: d0db beq.n 8000a2e <_ntoa_format+0xbc>
8000a76: f04f 0c20 mov.w ip, #32
8000a7a: e7d5 b.n 8000a28 <_ntoa_format+0xb6>
08000a7c <_ntoa_long>:
8000a7c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
8000a80: b091 sub sp, #68 ; 0x44
8000a82: 9d18 ldr r5, [sp, #96] ; 0x60
8000a84: 9e1a ldr r6, [sp, #104] ; 0x68
8000a86: 9f1d ldr r7, [sp, #116] ; 0x74
8000a88: b90d cbnz r5, 8000a8e <_ntoa_long+0x12>
8000a8a: f027 0710 bic.w r7, r7, #16
8000a8e: 057c lsls r4, r7, #21
8000a90: d500 bpl.n 8000a94 <_ntoa_long+0x18>
8000a92: b30d cbz r5, 8000ad8 <_ntoa_long+0x5c>
8000a94: f017 0f20 tst.w r7, #32
8000a98: 46ac mov ip, r5
8000a9a: f10d 0e20 add.w lr, sp, #32
8000a9e: f04f 0500 mov.w r5, #0
8000aa2: bf14 ite ne
8000aa4: f04f 0837 movne.w r8, #55 ; 0x37
8000aa8: f04f 0857 moveq.w r8, #87 ; 0x57
8000aac: fbbc f9f6 udiv r9, ip, r6
8000ab0: fb06 c919 mls r9, r6, r9, ip
8000ab4: fa4f f489 sxtb.w r4, r9
8000ab8: f1b9 0f09 cmp.w r9, #9
8000abc: bf94 ite ls
8000abe: 3430 addls r4, #48 ; 0x30
8000ac0: 4444 addhi r4, r8
8000ac2: b2e4 uxtb r4, r4
8000ac4: 45b4 cmp ip, r6
8000ac6: f80e 4b01 strb.w r4, [lr], #1
8000aca: fbbc f4f6 udiv r4, ip, r6
8000ace: f105 0501 add.w r5, r5, #1
8000ad2: d301 bcc.n 8000ad8 <_ntoa_long+0x5c>
8000ad4: 2d20 cmp r5, #32
8000ad6: d110 bne.n 8000afa <_ntoa_long+0x7e>
8000ad8: 9c1c ldr r4, [sp, #112] ; 0x70
8000ada: 9405 str r4, [sp, #20]
8000adc: 9c1b ldr r4, [sp, #108] ; 0x6c
8000ade: 9706 str r7, [sp, #24]
8000ae0: e9cd 6403 strd r6, r4, [sp, #12]
8000ae4: f89d 4064 ldrb.w r4, [sp, #100] ; 0x64
8000ae8: e9cd 5401 strd r5, r4, [sp, #4]
8000aec: ac08 add r4, sp, #32
8000aee: 9400 str r4, [sp, #0]
8000af0: f7ff ff3f bl 8000972 <_ntoa_format>
8000af4: b011 add sp, #68 ; 0x44
8000af6: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
8000afa: 46a4 mov ip, r4
8000afc: e7d6 b.n 8000aac <_ntoa_long+0x30>
08000afe <_ZN12_GLOBAL__N_18out_charEcPvjj>:
8000afe: b128 cbz r0, 8000b0c <_ZN12_GLOBAL__N_18out_charEcPvjj+0xe>
8000b00: 680b ldr r3, [r1, #0]
8000b02: 681a ldr r2, [r3, #0]
8000b04: 4601 mov r1, r0
8000b06: 6892 ldr r2, [r2, #8]
8000b08: 4618 mov r0, r3
8000b0a: 4710 bx r2
8000b0c: 4770 bx lr
...
08000b10 <_ZN4modm8IOStream12writeIntegerEm>:
8000b10: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
8000b12: 2200 movs r2, #0
8000b14: f44f 7380 mov.w r3, #256 ; 0x100
8000b18: e9cd 2304 strd r2, r3, [sp, #16]
8000b1c: 230a movs r3, #10
8000b1e: e9cd 2301 strd r2, r3, [sp, #4]
8000b22: 9100 str r1, [sp, #0]
8000b24: 9203 str r2, [sp, #12]
8000b26: 4601 mov r1, r0
8000b28: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
8000b2c: 4802 ldr r0, [pc, #8] ; (8000b38 <_ZN4modm8IOStream12writeIntegerEm+0x28>)
8000b2e: f7ff ffa5 bl 8000a7c <_ntoa_long>
8000b32: b007 add sp, #28
8000b34: f85d fb04 ldr.w pc, [sp], #4
8000b38: 08000aff .word 0x08000aff
08000b3c <_ZN4modm8platform3Rcc19enableInternalClockEm>:
8000b3c: 4b08 ldr r3, [pc, #32] ; (8000b60 <_ZN4modm8platform3Rcc19enableInternalClockEm+0x24>)
8000b3e: 681a ldr r2, [r3, #0]
8000b40: f042 0201 orr.w r2, r2, #1
8000b44: 601a str r2, [r3, #0]
8000b46: 681a ldr r2, [r3, #0]
8000b48: f012 0202 ands.w r2, r2, #2
8000b4c: d105 bne.n 8000b5a <_ZN4modm8platform3Rcc19enableInternalClockEm+0x1e>
8000b4e: 3801 subs r0, #1
8000b50: d1f9 bne.n 8000b46 <_ZN4modm8platform3Rcc19enableInternalClockEm+0xa>
8000b52: 3800 subs r0, #0
8000b54: bf18 it ne
8000b56: 2001 movne r0, #1
8000b58: 4770 bx lr
8000b5a: 4610 mov r0, r2
8000b5c: e7f9 b.n 8000b52 <_ZN4modm8platform3Rcc19enableInternalClockEm+0x16>
8000b5e: bf00 nop
8000b60: 40023800 .word 0x40023800
08000b64 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm>:
8000b64: b530 push {r4, r5, lr}
8000b66: 4c16 ldr r4, [pc, #88] ; (8000bc0 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x5c>)
8000b68: 780b ldrb r3, [r1, #0]
8000b6a: 6865 ldr r5, [r4, #4]
8000b6c: f025 6574 bic.w r5, r5, #255852544 ; 0xf400000
8000b70: f425 355f bic.w r5, r5, #228352 ; 0x37c00
8000b74: f425 757f bic.w r5, r5, #1020 ; 0x3fc
8000b78: f025 0503 bic.w r5, r5, #3
8000b7c: 4328 orrs r0, r5
8000b7e: f003 033f and.w r3, r3, #63 ; 0x3f
8000b82: 884d ldrh r5, [r1, #2]
8000b84: 4318 orrs r0, r3
8000b86: f647 73c0 movw r3, #32704 ; 0x7fc0
8000b8a: ea03 1385 and.w r3, r3, r5, lsl #6
8000b8e: 4318 orrs r0, r3
8000b90: 790b ldrb r3, [r1, #4]
8000b92: 085b lsrs r3, r3, #1
8000b94: 3b01 subs r3, #1
8000b96: 041b lsls r3, r3, #16
8000b98: f403 3340 and.w r3, r3, #196608 ; 0x30000
8000b9c: 4303 orrs r3, r0
8000b9e: 6063 str r3, [r4, #4]
8000ba0: 6823 ldr r3, [r4, #0]
8000ba2: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
8000ba6: 6023 str r3, [r4, #0]
8000ba8: 6823 ldr r3, [r4, #0]
8000baa: f013 7300 ands.w r3, r3, #33554432 ; 0x2000000
8000bae: d105 bne.n 8000bbc <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x58>
8000bb0: 3a01 subs r2, #1
8000bb2: d1f9 bne.n 8000ba8 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x44>
8000bb4: 1e10 subs r0, r2, #0
8000bb6: bf18 it ne
8000bb8: 2001 movne r0, #1
8000bba: bd30 pop {r4, r5, pc}
8000bbc: 461a mov r2, r3
8000bbe: e7f9 b.n 8000bb4 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x50>
8000bc0: 40023800 .word 0x40023800
08000bc4 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm>:
8000bc4: 4b08 ldr r3, [pc, #32] ; (8000be8 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0x24>)
8000bc6: 689a ldr r2, [r3, #8]
8000bc8: f022 0203 bic.w r2, r2, #3
8000bcc: 4302 orrs r2, r0
8000bce: 609a str r2, [r3, #8]
8000bd0: 0080 lsls r0, r0, #2
8000bd2: 689a ldr r2, [r3, #8]
8000bd4: f002 020c and.w r2, r2, #12
8000bd8: 4282 cmp r2, r0
8000bda: d003 beq.n 8000be4 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0x20>
8000bdc: 3901 subs r1, #1
8000bde: d1f8 bne.n 8000bd2 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0xe>
8000be0: 4608 mov r0, r1
8000be2: 4770 bx lr
8000be4: 2001 movs r0, #1
8000be6: 4770 bx lr
8000be8: 40023800 .word 0x40023800
08000bec <SysTick_Handler>:
8000bec: 4a06 ldr r2, [pc, #24] ; (8000c08 <SysTick_Handler+0x1c>)
8000bee: 6813 ldr r3, [r2, #0]
8000bf0: 33fa adds r3, #250 ; 0xfa
8000bf2: 6013 str r3, [r2, #0]
8000bf4: 4a05 ldr r2, [pc, #20] ; (8000c0c <SysTick_Handler+0x20>)
8000bf6: 6813 ldr r3, [r2, #0]
8000bf8: f503 3374 add.w r3, r3, #249856 ; 0x3d000
8000bfc: 3390 adds r3, #144 ; 0x90
8000bfe: 6013 str r3, [r2, #0]
8000c00: 4b03 ldr r3, [pc, #12] ; (8000c10 <SysTick_Handler+0x24>)
8000c02: 2201 movs r2, #1
8000c04: 701a strb r2, [r3, #0]
8000c06: 4770 bx lr
8000c08: 20000c98 .word 0x20000c98
8000c0c: 20000c94 .word 0x20000c94
8000c10: 20000c9c .word 0x20000c9c
08000c14 <_ZN4modm8platform12SysTickTimer6enableEmb>:
8000c14: 4b06 ldr r3, [pc, #24] ; (8000c30 <_ZN4modm8platform12SysTickTimer6enableEmb+0x1c>)
8000c16: 22f0 movs r2, #240 ; 0xf0
8000c18: f883 2023 strb.w r2, [r3, #35] ; 0x23
8000c1c: f5a3 634f sub.w r3, r3, #3312 ; 0xcf0
8000c20: 6058 str r0, [r3, #4]
8000c22: 6098 str r0, [r3, #8]
8000c24: b111 cbz r1, 8000c2c <_ZN4modm8platform12SysTickTimer6enableEmb+0x18>
8000c26: 2203 movs r2, #3
8000c28: 601a str r2, [r3, #0]
8000c2a: 4770 bx lr
8000c2c: 2207 movs r2, #7
8000c2e: e7fb b.n 8000c28 <_ZN4modm8platform12SysTickTimer6enableEmb+0x14>
8000c30: e000ed00 .word 0xe000ed00
08000c34 <modm_assert_report>:
8000c34: b5f8 push {r3, r4, r5, r6, r7, lr}
8000c36: 7a04 ldrb r4, [r0, #8]
8000c38: 4e11 ldr r6, [pc, #68] ; (8000c80 <modm_assert_report+0x4c>)
8000c3a: 4f12 ldr r7, [pc, #72] ; (8000c84 <modm_assert_report+0x50>)
8000c3c: 4605 mov r5, r0
8000c3e: 42be cmp r6, r7
8000c40: d206 bcs.n 8000c50 <modm_assert_report+0x1c>
8000c42: f856 3b04 ldr.w r3, [r6], #4
8000c46: 4628 mov r0, r5
8000c48: 4798 blx r3
8000c4a: 4304 orrs r4, r0
8000c4c: b2e4 uxtb r4, r4
8000c4e: e7f6 b.n 8000c3e <modm_assert_report+0xa>
8000c50: f004 037f and.w r3, r4, #127 ; 0x7f
8000c54: 2b01 cmp r3, #1
8000c56: 722c strb r4, [r5, #8]
8000c58: d001 beq.n 8000c5e <modm_assert_report+0x2a>
8000c5a: 0763 lsls r3, r4, #29
8000c5c: d50f bpl.n 8000c7e <modm_assert_report+0x4a>
8000c5e: 4628 mov r0, r5
8000c60: f7ff fd6a bl 8000738 <modm_abandon>
8000c64: f3bf 8f4f dsb sy
8000c68: 4907 ldr r1, [pc, #28] ; (8000c88 <modm_assert_report+0x54>)
8000c6a: 4b08 ldr r3, [pc, #32] ; (8000c8c <modm_assert_report+0x58>)
8000c6c: 68ca ldr r2, [r1, #12]
8000c6e: f402 62e0 and.w r2, r2, #1792 ; 0x700
8000c72: 4313 orrs r3, r2
8000c74: 60cb str r3, [r1, #12]
8000c76: f3bf 8f4f dsb sy
8000c7a: bf00 nop
8000c7c: e7fd b.n 8000c7a <modm_assert_report+0x46>
8000c7e: bdf8 pop {r3, r4, r5, r6, r7, pc}
8000c80: 0800115c .word 0x0800115c
8000c84: 0800115c .word 0x0800115c
8000c88: e000ed00 .word 0xe000ed00
8000c8c: 05fa0004 .word 0x05fa0004
08000c90 <_Z15modm_dwt_enablev>:
8000c90: 4a06 ldr r2, [pc, #24] ; (8000cac <_Z15modm_dwt_enablev+0x1c>)
8000c92: 68d3 ldr r3, [r2, #12]
8000c94: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
8000c98: 60d3 str r3, [r2, #12]
8000c9a: 4b05 ldr r3, [pc, #20] ; (8000cb0 <_Z15modm_dwt_enablev+0x20>)
8000c9c: 2200 movs r2, #0
8000c9e: 605a str r2, [r3, #4]
8000ca0: 681a ldr r2, [r3, #0]
8000ca2: f042 0201 orr.w r2, r2, #1
8000ca6: 601a str r2, [r3, #0]
8000ca8: 4770 bx lr
8000caa: bf00 nop
8000cac: e000edf0 .word 0xe000edf0
8000cb0: e0001000 .word 0xe0001000
08000cb4 <_ZN4modm8platform9HeapTable5beginEv>:
8000cb4: 4800 ldr r0, [pc, #0] ; (8000cb8 <_ZN4modm8platform9HeapTable5beginEv+0x4>)
8000cb6: 4770 bx lr
8000cb8: 08001234 .word 0x08001234
08000cbc <_ZN4modm8platform9HeapTable3endEv>:
8000cbc: 4800 ldr r0, [pc, #0] ; (8000cc0 <_ZN4modm8platform9HeapTable3endEv+0x4>)
8000cbe: 4770 bx lr
8000cc0: 08001240 .word 0x08001240
08000cc4 <_ZNK4modm8platform9HeapTable8IteratordeEv>:
8000cc4: b530 push {r4, r5, lr}
8000cc6: 680a ldr r2, [r1, #0]
8000cc8: 6851 ldr r1, [r2, #4]
8000cca: 6814 ldr r4, [r2, #0]
8000ccc: 6892 ldr r2, [r2, #8]
8000cce: 6081 str r1, [r0, #8]
8000cd0: 1a55 subs r5, r2, r1
8000cd2: e9c0 5200 strd r5, r2, [r0]
8000cd6: 8184 strh r4, [r0, #12]
8000cd8: bd30 pop {r4, r5, pc}
08000cda <_ZN4modm8platform9HeapTable8IteratorppEv>:
8000cda: 6802 ldr r2, [r0, #0]
8000cdc: 320c adds r2, #12
8000cde: 6002 str r2, [r0, #0]
8000ce0: 4770 bx lr
08000ce2 <_ZNK4modm8platform9HeapTable8IteratorneERKS2_>:
8000ce2: 6800 ldr r0, [r0, #0]
8000ce4: 680b ldr r3, [r1, #0]
8000ce6: 1ac0 subs r0, r0, r3
8000ce8: bf18 it ne
8000cea: 2001 movne r0, #1
8000cec: 4770 bx lr
...
08000cf0 <Reset_Handler>:
8000cf0: 4802 ldr r0, [pc, #8] ; (8000cfc <Reset_Handler+0xc>)
8000cf2: 4685 mov sp, r0
8000cf4: f000 f886 bl 8000e04 <__modm_initialize_platform>
8000cf8: f000 b812 b.w 8000d20 <__modm_startup>
8000cfc: 20000c00 .word 0x20000c00
08000d00 <table_copy>:
8000d00: b530 push {r4, r5, lr}
8000d02: 4288 cmp r0, r1
8000d04: d300 bcc.n 8000d08 <table_copy+0x8>
8000d06: bd30 pop {r4, r5, pc}
8000d08: e890 001c ldmia.w r0, {r2, r3, r4}
8000d0c: 429c cmp r4, r3
8000d0e: d801 bhi.n 8000d14 <table_copy+0x14>
8000d10: 300c adds r0, #12
8000d12: e7f6 b.n 8000d02 <table_copy+0x2>
8000d14: f852 5b04 ldr.w r5, [r2], #4
8000d18: f843 5b04 str.w r5, [r3], #4
8000d1c: e7f6 b.n 8000d0c <table_copy+0xc>
...
08000d20 <__modm_startup>:
8000d20: b538 push {r3, r4, r5, lr}
8000d22: 4929 ldr r1, [pc, #164] ; (8000dc8 <__modm_startup+0xa8>)
8000d24: 4829 ldr r0, [pc, #164] ; (8000dcc <__modm_startup+0xac>)
8000d26: f7ff ffeb bl 8000d00 <table_copy>
8000d2a: 4b29 ldr r3, [pc, #164] ; (8000dd0 <__modm_startup+0xb0>)
8000d2c: 4929 ldr r1, [pc, #164] ; (8000dd4 <__modm_startup+0xb4>)
8000d2e: 2000 movs r0, #0
8000d30: 428b cmp r3, r1
8000d32: d32e bcc.n 8000d92 <__modm_startup+0x72>
8000d34: 4b28 ldr r3, [pc, #160] ; (8000dd8 <__modm_startup+0xb8>)
8000d36: 4c29 ldr r4, [pc, #164] ; (8000ddc <__modm_startup+0xbc>)
8000d38: f8d3 2088 ldr.w r2, [r3, #136] ; 0x88
8000d3c: 4d28 ldr r5, [pc, #160] ; (8000de0 <__modm_startup+0xc0>)
8000d3e: f442 0270 orr.w r2, r2, #15728640 ; 0xf00000
8000d42: f8c3 2088 str.w r2, [r3, #136] ; 0x88
8000d46: 4a27 ldr r2, [pc, #156] ; (8000de4 <__modm_startup+0xc4>)
8000d48: 609a str r2, [r3, #8]
8000d4a: 695a ldr r2, [r3, #20]
8000d4c: f042 0210 orr.w r2, r2, #16
8000d50: 615a str r2, [r3, #20]
8000d52: 42ac cmp r4, r5
8000d54: d326 bcc.n 8000da4 <__modm_startup+0x84>
8000d56: 4924 ldr r1, [pc, #144] ; (8000de8 <__modm_startup+0xc8>)
8000d58: 4824 ldr r0, [pc, #144] ; (8000dec <__modm_startup+0xcc>)
8000d5a: f7ff ffd1 bl 8000d00 <table_copy>
8000d5e: 4b24 ldr r3, [pc, #144] ; (8000df0 <__modm_startup+0xd0>)
8000d60: 4924 ldr r1, [pc, #144] ; (8000df4 <__modm_startup+0xd4>)
8000d62: 2000 movs r0, #0
8000d64: 428b cmp r3, r1
8000d66: d321 bcc.n 8000dac <__modm_startup+0x8c>
8000d68: f000 f898 bl 8000e9c <__modm_initialize_memory>
8000d6c: 4c22 ldr r4, [pc, #136] ; (8000df8 <__modm_startup+0xd8>)
8000d6e: 4d23 ldr r5, [pc, #140] ; (8000dfc <__modm_startup+0xdc>)
8000d70: 42ac cmp r4, r5
8000d72: d324 bcc.n 8000dbe <__modm_startup+0x9e>
8000d74: f7ff fb30 bl 80003d8 <main>
8000d78: f3bf 8f4f dsb sy
8000d7c: 4916 ldr r1, [pc, #88] ; (8000dd8 <__modm_startup+0xb8>)
8000d7e: 4b20 ldr r3, [pc, #128] ; (8000e00 <__modm_startup+0xe0>)
8000d80: 68ca ldr r2, [r1, #12]
8000d82: f402 62e0 and.w r2, r2, #1792 ; 0x700
8000d86: 4313 orrs r3, r2
8000d88: 60cb str r3, [r1, #12]
8000d8a: f3bf 8f4f dsb sy
8000d8e: bf00 nop
8000d90: e7fd b.n 8000d8e <__modm_startup+0x6e>
8000d92: e9d3 2400 ldrd r2, r4, [r3]
8000d96: 42a2 cmp r2, r4
8000d98: d301 bcc.n 8000d9e <__modm_startup+0x7e>
8000d9a: 3308 adds r3, #8
8000d9c: e7c8 b.n 8000d30 <__modm_startup+0x10>
8000d9e: f842 0b04 str.w r0, [r2], #4
8000da2: e7f8 b.n 8000d96 <__modm_startup+0x76>
8000da4: f854 3b04 ldr.w r3, [r4], #4
8000da8: 4798 blx r3
8000daa: e7d2 b.n 8000d52 <__modm_startup+0x32>
8000dac: e9d3 2400 ldrd r2, r4, [r3]
8000db0: 42a2 cmp r2, r4
8000db2: d301 bcc.n 8000db8 <__modm_startup+0x98>
8000db4: 3308 adds r3, #8
8000db6: e7d5 b.n 8000d64 <__modm_startup+0x44>
8000db8: f842 0b04 str.w r0, [r2], #4
8000dbc: e7f8 b.n 8000db0 <__modm_startup+0x90>
8000dbe: f854 3b04 ldr.w r3, [r4], #4
8000dc2: 4798 blx r3
8000dc4: e7d4 b.n 8000d70 <__modm_startup+0x50>
8000dc6: bf00 nop
8000dc8: 08001234 .word 0x08001234
8000dcc: 0800121c .word 0x0800121c
8000dd0: 08001214 .word 0x08001214
8000dd4: 0800121c .word 0x0800121c
8000dd8: e000ed00 .word 0xe000ed00
8000ddc: 08001154 .word 0x08001154
8000de0: 0800115c .word 0x0800115c
8000de4: 08000000 .word 0x08000000
8000de8: 08001234 .word 0x08001234
8000dec: 08001234 .word 0x08001234
8000df0: 08001234 .word 0x08001234
8000df4: 08001234 .word 0x08001234
8000df8: 0800114c .word 0x0800114c
8000dfc: 08001154 .word 0x08001154
8000e00: 05fa0004 .word 0x05fa0004
08000e04 <__modm_initialize_platform>:
8000e04: 4a02 ldr r2, [pc, #8] ; (8000e10 <__modm_initialize_platform+0xc>)
8000e06: 6c53 ldr r3, [r2, #68] ; 0x44
8000e08: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8000e0c: 6453 str r3, [r2, #68] ; 0x44
8000e0e: 4770 bx lr
8000e10: 40023800 .word 0x40023800
08000e14 <Undefined_Handler>:
8000e14: b51f push {r0, r1, r2, r3, r4, lr}
8000e16: f3ef 8205 mrs r2, IPSR
8000e1a: 3a10 subs r2, #16
8000e1c: b253 sxtb r3, r2
8000e1e: 2b00 cmp r3, #0
8000e20: db1b blt.n 8000e5a <Undefined_Handler+0x46>
8000e22: 4811 ldr r0, [pc, #68] ; (8000e68 <Undefined_Handler+0x54>)
8000e24: 18c1 adds r1, r0, r3
8000e26: 24f0 movs r4, #240 ; 0xf0
8000e28: 095b lsrs r3, r3, #5
8000e2a: f881 4300 strb.w r4, [r1, #768] ; 0x300
8000e2e: 3320 adds r3, #32
8000e30: f002 041f and.w r4, r2, #31
8000e34: 2101 movs r1, #1
8000e36: 40a1 lsls r1, r4
8000e38: f840 1023 str.w r1, [r0, r3, lsl #2]
8000e3c: f3bf 8f4f dsb sy
8000e40: f3bf 8f6f isb sy
8000e44: 4b09 ldr r3, [pc, #36] ; (8000e6c <Undefined_Handler+0x58>)
8000e46: a801 add r0, sp, #4
8000e48: e9cd 3201 strd r3, r2, [sp, #4]
8000e4c: 2301 movs r3, #1
8000e4e: f88d 300c strb.w r3, [sp, #12]
8000e52: f7ff feef bl 8000c34 <modm_assert_report>
8000e56: b004 add sp, #16
8000e58: bd10 pop {r4, pc}
8000e5a: 4b05 ldr r3, [pc, #20] ; (8000e70 <Undefined_Handler+0x5c>)
8000e5c: f002 010f and.w r1, r2, #15
8000e60: 440b add r3, r1
8000e62: 21f0 movs r1, #240 ; 0xf0
8000e64: 7619 strb r1, [r3, #24]
8000e66: e7ed b.n 8000e44 <Undefined_Handler+0x30>
8000e68: e000e100 .word 0xe000e100
8000e6c: 08001140 .word 0x08001140
8000e70: e000ecfc .word 0xe000ecfc
08000e74 <_Z16modm_gpio_enablev>:
8000e74: 4b08 ldr r3, [pc, #32] ; (8000e98 <_Z16modm_gpio_enablev+0x24>)
8000e76: 2201 movs r2, #1
8000e78: 621a str r2, [r3, #32]
8000e7a: f503 3380 add.w r3, r3, #65536 ; 0x10000
8000e7e: 6b1a ldr r2, [r3, #48] ; 0x30
8000e80: f042 028f orr.w r2, r2, #143 ; 0x8f
8000e84: 631a str r2, [r3, #48] ; 0x30
8000e86: 691a ldr r2, [r3, #16]
8000e88: f042 028f orr.w r2, r2, #143 ; 0x8f
8000e8c: 611a str r2, [r3, #16]
8000e8e: 691a ldr r2, [r3, #16]
8000e90: f022 028f bic.w r2, r2, #143 ; 0x8f
8000e94: 611a str r2, [r3, #16]
8000e96: 4770 bx lr
8000e98: 40013800 .word 0x40013800
08000e9c <__modm_initialize_memory>:
8000e9c: b570 push {r4, r5, r6, lr}
8000e9e: b088 sub sp, #32
8000ea0: a801 add r0, sp, #4
8000ea2: f7ff ff07 bl 8000cb4 <_ZN4modm8platform9HeapTable5beginEv>
8000ea6: 9002 str r0, [sp, #8]
8000ea8: a801 add r0, sp, #4
8000eaa: f7ff ff07 bl 8000cbc <_ZN4modm8platform9HeapTable3endEv>
8000eae: 4c1a ldr r4, [pc, #104] ; (8000f18 <__modm_initialize_memory+0x7c>)
8000eb0: 9003 str r0, [sp, #12]
8000eb2: 2500 movs r5, #0
8000eb4: f104 0648 add.w r6, r4, #72 ; 0x48
8000eb8: a903 add r1, sp, #12
8000eba: a802 add r0, sp, #8
8000ebc: f7ff ff11 bl 8000ce2 <_ZNK4modm8platform9HeapTable8IteratorneERKS2_>
8000ec0: b340 cbz r0, 8000f14 <__modm_initialize_memory+0x78>
8000ec2: a902 add r1, sp, #8
8000ec4: a804 add r0, sp, #16
8000ec6: f7ff fefd bl 8000cc4 <_ZNK4modm8platform9HeapTable8IteratordeEv>
8000eca: 42b4 cmp r4, r6
8000ecc: d222 bcs.n 8000f14 <__modm_initialize_memory+0x78>
8000ece: f8bd 301c ldrh.w r3, [sp, #28]
8000ed2: 9806 ldr r0, [sp, #24]
8000ed4: 9a04 ldr r2, [sp, #16]
8000ed6: 42ab cmp r3, r5
8000ed8: d103 bne.n 8000ee2 <__modm_initialize_memory+0x46>
8000eda: f854 1c04 ldr.w r1, [r4, #-4]
8000ede: 4281 cmp r1, r0
8000ee0: d00e beq.n 8000f00 <__modm_initialize_memory+0x64>
8000ee2: 4611 mov r1, r2
8000ee4: f7ff fbc8 bl 8000678 <tlsf_create_with_pool>
8000ee8: b130 cbz r0, 8000ef8 <__modm_initialize_memory+0x5c>
8000eea: f8bd 501c ldrh.w r5, [sp, #28]
8000eee: 9b05 ldr r3, [sp, #20]
8000ef0: 8025 strh r5, [r4, #0]
8000ef2: 6060 str r0, [r4, #4]
8000ef4: 60a3 str r3, [r4, #8]
8000ef6: 340c adds r4, #12
8000ef8: a802 add r0, sp, #8
8000efa: f7ff feee bl 8000cda <_ZN4modm8platform9HeapTable8IteratorppEv>
8000efe: e7db b.n 8000eb8 <__modm_initialize_memory+0x1c>
8000f00: f854 0c08 ldr.w r0, [r4, #-8]
8000f04: f7ff fb7a bl 80005fc <tlsf_add_pool>
8000f08: 2800 cmp r0, #0
8000f0a: d0f5 beq.n 8000ef8 <__modm_initialize_memory+0x5c>
8000f0c: 9b05 ldr r3, [sp, #20]
8000f0e: f844 3c04 str.w r3, [r4, #-4]
8000f12: e7f1 b.n 8000ef8 <__modm_initialize_memory+0x5c>
8000f14: b008 add sp, #32
8000f16: bd70 pop {r4, r5, r6, pc}
8000f18: 20000ca0 .word 0x20000ca0
08000f1c <__wrap__free_r>:
8000f1c: b410 push {r4}
8000f1e: b159 cbz r1, 8000f38 <__wrap__free_r+0x1c>
8000f20: 4b0a ldr r3, [pc, #40] ; (8000f4c <__wrap__free_r+0x30>)
8000f22: 2206 movs r2, #6
8000f24: 6858 ldr r0, [r3, #4]
8000f26: 4281 cmp r1, r0
8000f28: d902 bls.n 8000f30 <__wrap__free_r+0x14>
8000f2a: 689c ldr r4, [r3, #8]
8000f2c: 42a1 cmp r1, r4
8000f2e: d306 bcc.n 8000f3e <__wrap__free_r+0x22>
8000f30: 3a01 subs r2, #1
8000f32: f103 030c add.w r3, r3, #12
8000f36: d1f5 bne.n 8000f24 <__wrap__free_r+0x8>
8000f38: f85d 4b04 ldr.w r4, [sp], #4
8000f3c: 4770 bx lr
8000f3e: 2800 cmp r0, #0
8000f40: d0fa beq.n 8000f38 <__wrap__free_r+0x1c>
8000f42: f85d 4b04 ldr.w r4, [sp], #4
8000f46: f7ff bba5 b.w 8000694 <tlsf_free>
8000f4a: bf00 nop
8000f4c: 20000ca0 .word 0x20000ca0
08000f50 <_ZN4modm8platform6Usart218initializeBufferedEm>:
8000f50: 4b06 ldr r3, [pc, #24] ; (8000f6c <_ZN4modm8platform6Usart218initializeBufferedEm+0x1c>)
8000f52: 0100 lsls r0, r0, #4
8000f54: b2c0 uxtb r0, r0
8000f56: f883 0326 strb.w r0, [r3, #806] ; 0x326
8000f5a: 2240 movs r2, #64 ; 0x40
8000f5c: 605a str r2, [r3, #4]
8000f5e: 4a04 ldr r2, [pc, #16] ; (8000f70 <_ZN4modm8platform6Usart218initializeBufferedEm+0x20>)
8000f60: 68d3 ldr r3, [r2, #12]
8000f62: f043 0320 orr.w r3, r3, #32
8000f66: 60d3 str r3, [r2, #12]
8000f68: 4770 bx lr
8000f6a: bf00 nop
8000f6c: e000e100 .word 0xe000e100
8000f70: 40004400 .word 0x40004400
08000f74 <_ZN4modm8platform6Usart25writeEh>:
8000f74: 4b15 ldr r3, [pc, #84] ; (8000fcc <_ZN4modm8platform6Usart25writeEh+0x58>)
8000f76: 8819 ldrh r1, [r3, #0]
8000f78: 885a ldrh r2, [r3, #2]
8000f7a: b289 uxth r1, r1
8000f7c: b292 uxth r2, r2
8000f7e: 4291 cmp r1, r2
8000f80: d106 bne.n 8000f90 <_ZN4modm8platform6Usart25writeEh+0x1c>
8000f82: 4a13 ldr r2, [pc, #76] ; (8000fd0 <_ZN4modm8platform6Usart25writeEh+0x5c>)
8000f84: 6811 ldr r1, [r2, #0]
8000f86: 0609 lsls r1, r1, #24
8000f88: d502 bpl.n 8000f90 <_ZN4modm8platform6Usart25writeEh+0x1c>
8000f8a: 6050 str r0, [r2, #4]
8000f8c: 2001 movs r0, #1
8000f8e: 4770 bx lr
8000f90: 881a ldrh r2, [r3, #0]
8000f92: 8859 ldrh r1, [r3, #2]
8000f94: 3201 adds r2, #1
8000f96: b292 uxth r2, r2
8000f98: f5b2 6f00 cmp.w r2, #2048 ; 0x800
8000f9c: bf88 it hi
8000f9e: 2200 movhi r2, #0
8000fa0: b289 uxth r1, r1
8000fa2: 4291 cmp r1, r2
8000fa4: d00f beq.n 8000fc6 <_ZN4modm8platform6Usart25writeEh+0x52>
8000fa6: 8819 ldrh r1, [r3, #0]
8000fa8: fa13 f181 uxtah r1, r3, r1
8000fac: 7108 strb r0, [r1, #4]
8000fae: 801a strh r2, [r3, #0]
8000fb0: f3ef 8110 mrs r1, PRIMASK
8000fb4: b672 cpsid i
8000fb6: 4a06 ldr r2, [pc, #24] ; (8000fd0 <_ZN4modm8platform6Usart25writeEh+0x5c>)
8000fb8: 68d3 ldr r3, [r2, #12]
8000fba: f043 0380 orr.w r3, r3, #128 ; 0x80
8000fbe: 60d3 str r3, [r2, #12]
8000fc0: f381 8810 msr PRIMASK, r1
8000fc4: e7e2 b.n 8000f8c <_ZN4modm8platform6Usart25writeEh+0x18>
8000fc6: 2000 movs r0, #0
8000fc8: 4770 bx lr
8000fca: bf00 nop
8000fcc: 20000cfc .word 0x20000cfc
8000fd0: 40004400 .word 0x40004400
08000fd4 <_ZN4modm8platform6Usart215isWriteFinishedEv>:
8000fd4: 4b06 ldr r3, [pc, #24] ; (8000ff0 <_ZN4modm8platform6Usart215isWriteFinishedEv+0x1c>)
8000fd6: 881a ldrh r2, [r3, #0]
8000fd8: 885b ldrh r3, [r3, #2]
8000fda: b292 uxth r2, r2
8000fdc: b29b uxth r3, r3
8000fde: 429a cmp r2, r3
8000fe0: bf03 ittte eq
8000fe2: 4b04 ldreq r3, [pc, #16] ; (8000ff4 <_ZN4modm8platform6Usart215isWriteFinishedEv+0x20>)
8000fe4: 6818 ldreq r0, [r3, #0]
8000fe6: f3c0 10c0 ubfxeq r0, r0, #7, #1
8000fea: 2000 movne r0, #0
8000fec: 4770 bx lr
8000fee: bf00 nop
8000ff0: 20000cfc .word 0x20000cfc
8000ff4: 40004400 .word 0x40004400
08000ff8 <_ZN4modm8platform6Usart216flushWriteBufferEv>:
8000ff8: b508 push {r3, lr}
8000ffa: f7ff ffeb bl 8000fd4 <_ZN4modm8platform6Usart215isWriteFinishedEv>
8000ffe: 2800 cmp r0, #0
8001000: d0fb beq.n 8000ffa <_ZN4modm8platform6Usart216flushWriteBufferEv+0x2>
8001002: bd08 pop {r3, pc}
08001004 <_ZN4modm8platform6Usart24readERh>:
8001004: 4a09 ldr r2, [pc, #36] ; (800102c <_ZN4modm8platform6Usart24readERh+0x28>)
8001006: 7811 ldrb r1, [r2, #0]
8001008: 7853 ldrb r3, [r2, #1]
800100a: 4299 cmp r1, r3
800100c: d00c beq.n 8001028 <_ZN4modm8platform6Usart24readERh+0x24>
800100e: 7853 ldrb r3, [r2, #1]
8001010: 4413 add r3, r2
8001012: 789b ldrb r3, [r3, #2]
8001014: 7003 strb r3, [r0, #0]
8001016: 7853 ldrb r3, [r2, #1]
8001018: 3301 adds r3, #1
800101a: b2db uxtb r3, r3
800101c: 2b11 cmp r3, #17
800101e: bf28 it cs
8001020: 2300 movcs r3, #0
8001022: 7053 strb r3, [r2, #1]
8001024: 2001 movs r0, #1
8001026: 4770 bx lr
8001028: 2000 movs r0, #0
800102a: 4770 bx lr
800102c: 20000ce8 .word 0x20000ce8
08001030 <USART2_IRQHandler>:
8001030: 4b19 ldr r3, [pc, #100] ; (8001098 <USART2_IRQHandler+0x68>)
8001032: 681a ldr r2, [r3, #0]
8001034: 0691 lsls r1, r2, #26
8001036: d50e bpl.n 8001056 <USART2_IRQHandler+0x26>
8001038: 4a18 ldr r2, [pc, #96] ; (800109c <USART2_IRQHandler+0x6c>)
800103a: 6858 ldr r0, [r3, #4]
800103c: 7813 ldrb r3, [r2, #0]
800103e: 7851 ldrb r1, [r2, #1]
8001040: 3301 adds r3, #1
8001042: b2db uxtb r3, r3
8001044: 2b11 cmp r3, #17
8001046: bf28 it cs
8001048: 2300 movcs r3, #0
800104a: 4299 cmp r1, r3
800104c: bf1f itttt ne
800104e: 7811 ldrbne r1, [r2, #0]
8001050: 7013 strbne r3, [r2, #0]
8001052: 1889 addne r1, r1, r2
8001054: 7088 strbne r0, [r1, #2]
8001056: 4b10 ldr r3, [pc, #64] ; (8001098 <USART2_IRQHandler+0x68>)
8001058: 681a ldr r2, [r3, #0]
800105a: 0612 lsls r2, r2, #24
800105c: d50a bpl.n 8001074 <USART2_IRQHandler+0x44>
800105e: 4a10 ldr r2, [pc, #64] ; (80010a0 <USART2_IRQHandler+0x70>)
8001060: 8810 ldrh r0, [r2, #0]
8001062: 8851 ldrh r1, [r2, #2]
8001064: b280 uxth r0, r0
8001066: b289 uxth r1, r1
8001068: 4288 cmp r0, r1
800106a: d107 bne.n 800107c <USART2_IRQHandler+0x4c>
800106c: 68da ldr r2, [r3, #12]
800106e: f022 0280 bic.w r2, r2, #128 ; 0x80
8001072: 60da str r2, [r3, #12]
8001074: 4b08 ldr r3, [pc, #32] ; (8001098 <USART2_IRQHandler+0x68>)
8001076: 681a ldr r2, [r3, #0]
8001078: 685b ldr r3, [r3, #4]
800107a: 4770 bx lr
800107c: 8851 ldrh r1, [r2, #2]
800107e: fa12 f181 uxtah r1, r2, r1
8001082: 7909 ldrb r1, [r1, #4]
8001084: 6059 str r1, [r3, #4]
8001086: 8853 ldrh r3, [r2, #2]
8001088: 3301 adds r3, #1
800108a: b29b uxth r3, r3
800108c: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8001090: bf88 it hi
8001092: 2300 movhi r3, #0
8001094: 8053 strh r3, [r2, #2]
8001096: e7ed b.n 8001074 <USART2_IRQHandler+0x44>
8001098: 40004400 .word 0x40004400
800109c: 20000ce8 .word 0x20000ce8
80010a0: 20000cfc .word 0x20000cfc
080010a4 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm>:
80010a4: 4a03 ldr r2, [pc, #12] ; (80010b4 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm+0x10>)
80010a6: 2300 movs r3, #0
80010a8: 7013 strb r3, [r2, #0]
80010aa: 7053 strb r3, [r2, #1]
80010ac: 4a02 ldr r2, [pc, #8] ; (80010b8 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm+0x14>)
80010ae: 8013 strh r3, [r2, #0]
80010b0: 8053 strh r3, [r2, #2]
80010b2: 4770 bx lr
80010b4: 20000ce8 .word 0x20000ce8
80010b8: 20000cfc .word 0x20000cfc
080010bc <free>:
80010bc: 4b02 ldr r3, [pc, #8] ; (80010c8 <free+0xc>)
80010be: 4601 mov r1, r0
80010c0: 6818 ldr r0, [r3, #0]
80010c2: f7ff bf2b b.w 8000f1c <__wrap__free_r>
80010c6: bf00 nop
80010c8: 20000c08 .word 0x20000c08
Disassembly of section .fastcode:
08001180 <_ZN4modm8delay_usEm>:
8001180: b148 cbz r0, 8001196 <_ZN4modm8delay_usEm+0x16>
8001182: 4a05 ldr r2, [pc, #20] ; (8001198 <__fastcode_load+0x18>)
8001184: 4b05 ldr r3, [pc, #20] ; (800119c <__fastcode_load+0x1c>)
8001186: 8812 ldrh r2, [r2, #0]
8001188: 6859 ldr r1, [r3, #4]
800118a: 4350 muls r0, r2
800118c: 3819 subs r0, #25
800118e: 685a ldr r2, [r3, #4]
8001190: 1a52 subs r2, r2, r1
8001192: 4282 cmp r2, r0
8001194: dbfb blt.n 800118e <_ZN4modm8delay_usEm+0xe>
8001196: 4770 bx lr
8001198: 20001506 .word 0x20001506
800119c: e0001000 .word 0xe0001000
arm-none-eabi-objdump -d blink.elf (Ubuntu Toolchain)
arm-none-eabi-objdump -d blink.elf (Ubuntu Toolchain)
/home/user/modm/build/nucleo_f411re/blink/release/blink.elf: file format elf32-littlearm
Disassembly of section .text:
080001a0 <_ZN4modm8IOStream4endlEv>:
80001a0: 2300 movs r3, #0
80001a2: b510 push {r4, lr}
80001a4: 4604 mov r4, r0
80001a6: 6043 str r3, [r0, #4]
80001a8: 6800 ldr r0, [r0, #0]
80001aa: 6803 ldr r3, [r0, #0]
80001ac: 210a movs r1, #10
80001ae: 689b ldr r3, [r3, #8]
80001b0: 4798 blx r3
80001b2: 4620 mov r0, r4
80001b4: bd10 pop {r4, pc}
080001b6 <_ZN4modm8IOStreamlsEPKc>:
80001b6: b510 push {r4, lr}
80001b8: 4604 mov r4, r0
80001ba: 6800 ldr r0, [r0, #0]
80001bc: 6803 ldr r3, [r0, #0]
80001be: 68db ldr r3, [r3, #12]
80001c0: 4798 blx r3
80001c2: 4620 mov r0, r4
80001c4: bd10 pop {r4, pc}
...
080001c8 <_ZN5Board11SystemClock6enableEv>:
80001c8: b507 push {r0, r1, r2, lr}
80001ca: f44f 6000 mov.w r0, #2048 ; 0x800
80001ce: f000 fd6d bl 8000cac <_ZN4modm8platform3Rcc19enableInternalClockEm>
80001d2: 4b1d ldr r3, [pc, #116] ; (8000248 <_ZN5Board11SystemClock6enableEv+0x80>)
80001d4: 6818 ldr r0, [r3, #0]
80001d6: 9000 str r0, [sp, #0]
80001d8: 889b ldrh r3, [r3, #4]
80001da: f8ad 3004 strh.w r3, [sp, #4]
80001de: f44f 6200 mov.w r2, #2048 ; 0x800
80001e2: 4669 mov r1, sp
80001e4: 2000 movs r0, #0
80001e6: f000 fd75 bl 8000cd4 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm>
80001ea: 4a18 ldr r2, [pc, #96] ; (800024c <_ZN5Board11SystemClock6enableEv+0x84>)
80001ec: 6813 ldr r3, [r2, #0]
80001ee: f023 030f bic.w r3, r3, #15
80001f2: f443 63e0 orr.w r3, r3, #1792 ; 0x700
80001f6: f043 0303 orr.w r3, r3, #3
80001fa: 6013 str r3, [r2, #0]
80001fc: f3bf 8f4f dsb sy
8000200: f3bf 8f6f isb sy
8000204: f44f 6100 mov.w r1, #2048 ; 0x800
8000208: 2002 movs r0, #2
800020a: f000 fd93 bl 8000d34 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm>
800020e: 4b10 ldr r3, [pc, #64] ; (8000250 <_ZN5Board11SystemClock6enableEv+0x88>)
8000210: 689a ldr r2, [r3, #8]
8000212: f022 02f0 bic.w r2, r2, #240 ; 0xf0
8000216: 609a str r2, [r3, #8]
8000218: 689a ldr r2, [r3, #8]
800021a: f422 52e0 bic.w r2, r2, #7168 ; 0x1c00
800021e: f442 5280 orr.w r2, r2, #4096 ; 0x1000
8000222: 609a str r2, [r3, #8]
8000224: 689a ldr r2, [r3, #8]
8000226: f422 4260 bic.w r2, r2, #57344 ; 0xe000
800022a: 609a str r2, [r3, #8]
800022c: 4b09 ldr r3, [pc, #36] ; (8000254 <_ZN5Board11SystemClock6enableEv+0x8c>)
800022e: 2260 movs r2, #96 ; 0x60
8000230: 801a strh r2, [r3, #0]
8000232: 4b09 ldr r3, [pc, #36] ; (8000258 <_ZN5Board11SystemClock6enableEv+0x90>)
8000234: 4a09 ldr r2, [pc, #36] ; (800025c <_ZN5Board11SystemClock6enableEv+0x94>)
8000236: 601a str r2, [r3, #0]
8000238: 4b09 ldr r3, [pc, #36] ; (8000260 <_ZN5Board11SystemClock6enableEv+0x98>)
800023a: 221f movs r2, #31
800023c: 2001 movs r0, #1
800023e: 801a strh r2, [r3, #0]
8000240: b003 add sp, #12
8000242: f85d fb04 ldr.w pc, [sp], #4
8000246: bf00 nop
8000248: 080012bc .word 0x080012bc
800024c: 40023c00 .word 0x40023c00
8000250: 40023800 .word 0x40023800
8000254: 20001506 .word 0x20001506
8000258: 20001508 .word 0x20001508
800025c: 05b8d800 .word 0x05b8d800
8000260: 20001504 .word 0x20001504
08000264 <_ZN5Board10initializeEv>:
8000264: b510 push {r4, lr}
8000266: f7ff ffaf bl 80001c8 <_ZN5Board11SystemClock6enableEv>
800026a: 4b52 ldr r3, [pc, #328] ; (80003b4 <_ZN5Board10initializeEv+0x150>)
800026c: 4a52 ldr r2, [pc, #328] ; (80003b8 <_ZN5Board10initializeEv+0x154>)
800026e: 601a str r2, [r3, #0]
8000270: 4b52 ldr r3, [pc, #328] ; (80003bc <_ZN5Board10initializeEv+0x158>)
8000272: 4a53 ldr r2, [pc, #332] ; (80003c0 <_ZN5Board10initializeEv+0x15c>)
8000274: 4853 ldr r0, [pc, #332] ; (80003c4 <_ZN5Board10initializeEv+0x160>)
8000276: 601a str r2, [r3, #0]
8000278: 2101 movs r1, #1
800027a: f000 fd83 bl 8000d84 <_ZN4modm8platform12SysTickTimer6enableEmb>
800027e: 4b52 ldr r3, [pc, #328] ; (80003c8 <_ZN5Board10initializeEv+0x164>)
8000280: 689a ldr r2, [r3, #8]
8000282: f022 0230 bic.w r2, r2, #48 ; 0x30
8000286: f042 0220 orr.w r2, r2, #32
800028a: 609a str r2, [r3, #8]
800028c: 685a ldr r2, [r3, #4]
800028e: f022 0204 bic.w r2, r2, #4
8000292: 605a str r2, [r3, #4]
8000294: 681a ldr r2, [r3, #0]
8000296: f022 0230 bic.w r2, r2, #48 ; 0x30
800029a: f042 0210 orr.w r2, r2, #16
800029e: 601a str r2, [r3, #0]
80002a0: 68da ldr r2, [r3, #12]
80002a2: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002a6: f042 0240 orr.w r2, r2, #64 ; 0x40
80002aa: 60da str r2, [r3, #12]
80002ac: 681a ldr r2, [r3, #0]
80002ae: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002b2: 601a str r2, [r3, #0]
80002b4: 685a ldr r2, [r3, #4]
80002b6: f022 0208 bic.w r2, r2, #8
80002ba: 605a str r2, [r3, #4]
80002bc: 689a ldr r2, [r3, #8]
80002be: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002c2: 609a str r2, [r3, #8]
80002c4: 6a1a ldr r2, [r3, #32]
80002c6: f422 6270 bic.w r2, r2, #3840 ; 0xf00
80002ca: f442 62e0 orr.w r2, r2, #1792 ; 0x700
80002ce: 621a str r2, [r3, #32]
80002d0: 681a ldr r2, [r3, #0]
80002d2: f022 0230 bic.w r2, r2, #48 ; 0x30
80002d6: f042 0220 orr.w r2, r2, #32
80002da: 601a str r2, [r3, #0]
80002dc: 6a1a ldr r2, [r3, #32]
80002de: f422 4270 bic.w r2, r2, #61440 ; 0xf000
80002e2: f442 42e0 orr.w r2, r2, #28672 ; 0x7000
80002e6: 621a str r2, [r3, #32]
80002e8: 681a ldr r2, [r3, #0]
80002ea: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002ee: f042 0280 orr.w r2, r2, #128 ; 0x80
80002f2: 601a str r2, [r3, #0]
80002f4: f3bf 8f4f dsb sy
80002f8: f503 5360 add.w r3, r3, #14336 ; 0x3800
80002fc: 6c1a ldr r2, [r3, #64] ; 0x40
80002fe: 0392 lsls r2, r2, #14
8000300: d40f bmi.n 8000322 <_ZN5Board10initializeEv+0xbe>
8000302: 6c1a ldr r2, [r3, #64] ; 0x40
8000304: f442 3200 orr.w r2, r2, #131072 ; 0x20000
8000308: 641a str r2, [r3, #64] ; 0x40
800030a: f3bf 8f4f dsb sy
800030e: 6a1a ldr r2, [r3, #32]
8000310: f442 3200 orr.w r2, r2, #131072 ; 0x20000
8000314: 621a str r2, [r3, #32]
8000316: f3bf 8f4f dsb sy
800031a: 6a1a ldr r2, [r3, #32]
800031c: f422 3200 bic.w r2, r2, #131072 ; 0x20000
8000320: 621a str r2, [r3, #32]
8000322: f3bf 8f4f dsb sy
8000326: 4c29 ldr r4, [pc, #164] ; (80003cc <_ZN5Board10initializeEv+0x168>)
8000328: 68e3 ldr r3, [r4, #12]
800032a: f443 5300 orr.w r3, r3, #8192 ; 0x2000
800032e: 60e3 str r3, [r4, #12]
8000330: 68e3 ldr r3, [r4, #12]
8000332: f423 5300 bic.w r3, r3, #8192 ; 0x2000
8000336: 60e3 str r3, [r4, #12]
8000338: f240 13a1 movw r3, #417 ; 0x1a1
800033c: 60a3 str r3, [r4, #8]
800033e: 68e3 ldr r3, [r4, #12]
8000340: f423 53b0 bic.w r3, r3, #5632 ; 0x1600
8000344: 60e3 str r3, [r4, #12]
8000346: 68e3 ldr r3, [r4, #12]
8000348: f423 4300 bic.w r3, r3, #32768 ; 0x8000
800034c: 60e3 str r3, [r4, #12]
800034e: 68e3 ldr r3, [r4, #12]
8000350: f443 5300 orr.w r3, r3, #8192 ; 0x2000
8000354: 60e3 str r3, [r4, #12]
8000356: 200c movs r0, #12
8000358: f000 feda bl 8001110 <_ZN4modm8platform6Usart218initializeBufferedEm>
800035c: 68e3 ldr r3, [r4, #12]
800035e: 491c ldr r1, [pc, #112] ; (80003d0 <_ZN5Board10initializeEv+0x16c>)
8000360: f043 0308 orr.w r3, r3, #8
8000364: 60e3 str r3, [r4, #12]
8000366: 68e3 ldr r3, [r4, #12]
8000368: f043 0304 orr.w r3, r3, #4
800036c: 60e3 str r3, [r4, #12]
800036e: 4b19 ldr r3, [pc, #100] ; (80003d4 <_ZN5Board10initializeEv+0x170>)
8000370: 681a ldr r2, [r3, #0]
8000372: f022 6240 bic.w r2, r2, #201326592 ; 0xc000000
8000376: 601a str r2, [r3, #0]
8000378: 685a ldr r2, [r3, #4]
800037a: f422 5200 bic.w r2, r2, #8192 ; 0x2000
800037e: 605a str r2, [r3, #4]
8000380: 689a ldr r2, [r3, #8]
8000382: f022 6240 bic.w r2, r2, #201326592 ; 0xc000000
8000386: 609a str r2, [r3, #8]
8000388: f5a3 434c sub.w r3, r3, #52224 ; 0xcc00
800038c: 689a ldr r2, [r3, #8]
800038e: f442 5200 orr.w r2, r2, #8192 ; 0x2000
8000392: 609a str r2, [r3, #8]
8000394: 68da ldr r2, [r3, #12]
8000396: f422 5200 bic.w r2, r2, #8192 ; 0x2000
800039a: 60da str r2, [r3, #12]
800039c: 694a ldr r2, [r1, #20]
800039e: f022 02f0 bic.w r2, r2, #240 ; 0xf0
80003a2: f042 0220 orr.w r2, r2, #32
80003a6: 614a str r2, [r1, #20]
80003a8: 681a ldr r2, [r3, #0]
80003aa: f442 5200 orr.w r2, r2, #8192 ; 0x2000
80003ae: 601a str r2, [r3, #0]
80003b0: bd10 pop {r4, pc}
80003b2: bf00 nop
80003b4: 20000c6c .word 0x20000c6c
80003b8: 15555555 .word 0x15555555
80003bc: 20000c70 .word 0x20000c70
80003c0: 00057619 .word 0x00057619
80003c4: 002dc6bf .word 0x002dc6bf
80003c8: 40020000 .word 0x40020000
80003cc: 40004400 .word 0x40004400
80003d0: 40013800 .word 0x40013800
80003d4: 40020800 .word 0x40020800
080003d8 <main>:
80003d8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
80003dc: 4c33 ldr r4, [pc, #204] ; (80004ac <main+0xd4>)
80003de: f8df 80f0 ldr.w r8, [pc, #240] ; 80004d0 <main+0xf8>
80003e2: f8df 90f0 ldr.w r9, [pc, #240] ; 80004d4 <main+0xfc>
80003e6: f7ff ff3d bl 8000264 <_ZN5Board10initializeEv>
80003ea: 6823 ldr r3, [r4, #0]
80003ec: 4930 ldr r1, [pc, #192] ; (80004b0 <main+0xd8>)
80003ee: 4831 ldr r0, [pc, #196] ; (80004b4 <main+0xdc>)
80003f0: f423 6340 bic.w r3, r3, #3072 ; 0xc00
80003f4: f443 6380 orr.w r3, r3, #1024 ; 0x400
80003f8: 6023 str r3, [r4, #0]
80003fa: f7ff fedc bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80003fe: f7ff fecf bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000402: 492d ldr r1, [pc, #180] ; (80004b8 <main+0xe0>)
8000404: 482d ldr r0, [pc, #180] ; (80004bc <main+0xe4>)
8000406: f7ff fed6 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800040a: f7ff fec9 bl 80001a0 <_ZN4modm8IOStream4endlEv>
800040e: 492c ldr r1, [pc, #176] ; (80004c0 <main+0xe8>)
8000410: 482c ldr r0, [pc, #176] ; (80004c4 <main+0xec>)
8000412: f7ff fed0 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000416: f7ff fec3 bl 80001a0 <_ZN4modm8IOStream4endlEv>
800041a: 492b ldr r1, [pc, #172] ; (80004c8 <main+0xf0>)
800041c: 482b ldr r0, [pc, #172] ; (80004cc <main+0xf4>)
800041e: f7ff feca bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000422: f7ff febd bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000426: f04f 0a00 mov.w sl, #0
800042a: 6963 ldr r3, [r4, #20]
800042c: 069b lsls r3, r3, #26
800042e: bf4c ite mi
8000430: f44f 1300 movmi.w r3, #2097152 ; 0x200000
8000434: 2320 movpl r3, #32
8000436: 61a3 str r3, [r4, #24]
8000438: f8d8 3010 ldr.w r3, [r8, #16]
800043c: f413 5f00 tst.w r3, #8192 ; 0x2000
8000440: bf08 it eq
8000442: 2064 moveq r0, #100 ; 0x64
8000444: f44f 737a mov.w r3, #1000 ; 0x3e8
8000448: bf18 it ne
800044a: f44f 70fa movne.w r0, #500 ; 0x1f4
800044e: 4358 muls r0, r3
8000450: f000 ff7e bl 8001350 <_ZN4modm8delay_usEm>
8000454: 4819 ldr r0, [pc, #100] ; (80004bc <main+0xe4>)
8000456: 4649 mov r1, r9
8000458: f7ff fead bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800045c: 6843 ldr r3, [r0, #4]
800045e: 4605 mov r5, r0
8000460: f10a 0701 add.w r7, sl, #1
8000464: b93b cbnz r3, 8000476 <main+0x9e>
8000466: 4651 mov r1, sl
8000468: f000 fc0a bl 8000c80 <_ZN4modm8IOStream12writeIntegerEm>
800046c: 4628 mov r0, r5
800046e: f7ff fe97 bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000472: 46ba mov sl, r7
8000474: e7d9 b.n 800042a <main+0x52>
8000476: 2b02 cmp r3, #2
8000478: f04f 0618 mov.w r6, #24
800047c: d10a bne.n 8000494 <main+0xbc>
800047e: fa2a f106 lsr.w r1, sl, r6
8000482: 3e08 subs r6, #8
8000484: b2c9 uxtb r1, r1
8000486: 4628 mov r0, r5
8000488: b2f6 uxtb r6, r6
800048a: f000 fab5 bl 80009f8 <_ZN4modm8IOStream8writeBinEh>
800048e: 2ef8 cmp r6, #248 ; 0xf8
8000490: d1f5 bne.n 800047e <main+0xa6>
8000492: e7eb b.n 800046c <main+0x94>
8000494: fa2a f106 lsr.w r1, sl, r6
8000498: 3e08 subs r6, #8
800049a: b2c9 uxtb r1, r1
800049c: 4628 mov r0, r5
800049e: b2f6 uxtb r6, r6
80004a0: f000 fa9e bl 80009e0 <_ZN4modm8IOStream8writeHexEh>
80004a4: 2ef8 cmp r6, #248 ; 0xf8
80004a6: d1f5 bne.n 8000494 <main+0xbc>
80004a8: e7e0 b.n 800046c <main+0x94>
80004aa: bf00 nop
80004ac: 40020000 .word 0x40020000
80004b0: 0800129c .word 0x0800129c
80004b4: 20000c7c .word 0x20000c7c
80004b8: 080012a2 .word 0x080012a2
80004bc: 20000c74 .word 0x20000c74
80004c0: 080012a7 .word 0x080012a7
80004c4: 20000c8c .word 0x20000c8c
80004c8: 080012af .word 0x080012af
80004cc: 20000c84 .word 0x20000c84
80004d0: 40020800 .word 0x40020800
80004d4: 080012b5 .word 0x080012b5
080004d8 <__aeabi_atexit>:
80004d8: 2000 movs r0, #0
80004da: 4770 bx lr
080004dc <_ZdlPvj>:
80004dc: f000 bed6 b.w 800128c <free>
080004e0 <block_next>:
80004e0: 6843 ldr r3, [r0, #4]
80004e2: f023 0303 bic.w r3, r3, #3
80004e6: 4418 add r0, r3
80004e8: 3004 adds r0, #4
80004ea: 4770 bx lr
080004ec <block_link_next>:
80004ec: b508 push {r3, lr}
80004ee: 4602 mov r2, r0
80004f0: f7ff fff6 bl 80004e0 <block_next>
80004f4: 6002 str r2, [r0, #0]
80004f6: bd08 pop {r3, pc}
080004f8 <block_mark_as_used>:
80004f8: b508 push {r3, lr}
80004fa: 4602 mov r2, r0
80004fc: f7ff fff0 bl 80004e0 <block_next>
8000500: 6843 ldr r3, [r0, #4]
8000502: f023 0302 bic.w r3, r3, #2
8000506: 6043 str r3, [r0, #4]
8000508: 6853 ldr r3, [r2, #4]
800050a: f023 0301 bic.w r3, r3, #1
800050e: 6053 str r3, [r2, #4]
8000510: bd08 pop {r3, pc}
08000512 <block_split>:
8000512: b510 push {r4, lr}
8000514: 6843 ldr r3, [r0, #4]
8000516: 1844 adds r4, r0, r1
8000518: f023 0303 bic.w r3, r3, #3
800051c: 68a2 ldr r2, [r4, #8]
800051e: 1a5b subs r3, r3, r1
8000520: f002 0203 and.w r2, r2, #3
8000524: 3b04 subs r3, #4
8000526: 4313 orrs r3, r2
8000528: 60a3 str r3, [r4, #8]
800052a: 6843 ldr r3, [r0, #4]
800052c: f003 0203 and.w r2, r3, #3
8000530: 3404 adds r4, #4
8000532: 430a orrs r2, r1
8000534: 6042 str r2, [r0, #4]
8000536: 4620 mov r0, r4
8000538: f7ff ffd8 bl 80004ec <block_link_next>
800053c: 6843 ldr r3, [r0, #4]
800053e: f043 0302 orr.w r3, r3, #2
8000542: 6043 str r3, [r0, #4]
8000544: 6863 ldr r3, [r4, #4]
8000546: f043 0301 orr.w r3, r3, #1
800054a: 6063 str r3, [r4, #4]
800054c: 4620 mov r0, r4
800054e: bd10 pop {r4, pc}
08000550 <adjust_request_size>:
8000550: 4b06 ldr r3, [pc, #24] ; (800056c <adjust_request_size+0x1c>)
8000552: 1e42 subs r2, r0, #1
8000554: 429a cmp r2, r3
8000556: d807 bhi.n 8000568 <adjust_request_size+0x18>
8000558: 1e4b subs r3, r1, #1
800055a: 4418 add r0, r3
800055c: 4249 negs r1, r1
800055e: 4008 ands r0, r1
8000560: 280c cmp r0, #12
8000562: bf38 it cc
8000564: 200c movcc r0, #12
8000566: 4770 bx lr
8000568: 2000 movs r0, #0
800056a: 4770 bx lr
800056c: 0001fffe .word 0x0001fffe
08000570 <remove_free_block>:
8000570: b570 push {r4, r5, r6, lr}
8000572: e9d1 4502 ldrd r4, r5, [r1, #8]
8000576: 60e5 str r5, [r4, #12]
8000578: 60ac str r4, [r5, #8]
800057a: eb03 1502 add.w r5, r3, r2, lsl #4
800057e: eb00 0585 add.w r5, r0, r5, lsl #2
8000582: 6c6e ldr r6, [r5, #68] ; 0x44
8000584: 428e cmp r6, r1
8000586: d112 bne.n 80005ae <remove_free_block+0x3e>
8000588: 42a0 cmp r0, r4
800058a: 646c str r4, [r5, #68] ; 0x44
800058c: d10f bne.n 80005ae <remove_free_block+0x3e>
800058e: eb00 0582 add.w r5, r0, r2, lsl #2
8000592: 2101 movs r1, #1
8000594: 696c ldr r4, [r5, #20]
8000596: fa01 f303 lsl.w r3, r1, r3
800059a: ea24 0303 bic.w r3, r4, r3
800059e: 616b str r3, [r5, #20]
80005a0: b92b cbnz r3, 80005ae <remove_free_block+0x3e>
80005a2: fa01 f202 lsl.w r2, r1, r2
80005a6: 6901 ldr r1, [r0, #16]
80005a8: ea21 0202 bic.w r2, r1, r2
80005ac: 6102 str r2, [r0, #16]
80005ae: bd70 pop {r4, r5, r6, pc}
080005b0 <mapping_insert>:
80005b0: 283f cmp r0, #63 ; 0x3f
80005b2: b510 push {r4, lr}
80005b4: bf83 ittte hi
80005b6: fab0 f380 clzhi r3, r0
80005ba: f1c3 041b rsbhi r4, r3, #27
80005be: 40e0 lsrhi r0, r4
80005c0: 1080 asrls r0, r0, #2
80005c2: bf92 itee ls
80005c4: 2300 movls r3, #0
80005c6: f080 0010 eorhi.w r0, r0, #16
80005ca: f1c3 031a rsbhi r3, r3, #26
80005ce: 600b str r3, [r1, #0]
80005d0: 6010 str r0, [r2, #0]
80005d2: bd10 pop {r4, pc}
080005d4 <block_insert>:
80005d4: b537 push {r0, r1, r2, r4, r5, lr}
80005d6: 4604 mov r4, r0
80005d8: 6848 ldr r0, [r1, #4]
80005da: 460d mov r5, r1
80005dc: aa01 add r2, sp, #4
80005de: 4669 mov r1, sp
80005e0: f020 0003 bic.w r0, r0, #3
80005e4: f7ff ffe4 bl 80005b0 <mapping_insert>
80005e8: e9dd 0100 ldrd r0, r1, [sp]
80005ec: eb01 1200 add.w r2, r1, r0, lsl #4
80005f0: eb04 0282 add.w r2, r4, r2, lsl #2
80005f4: 6c53 ldr r3, [r2, #68] ; 0x44
80005f6: e9c5 3402 strd r3, r4, [r5, #8]
80005fa: 60dd str r5, [r3, #12]
80005fc: 6455 str r5, [r2, #68] ; 0x44
80005fe: 6922 ldr r2, [r4, #16]
8000600: 2301 movs r3, #1
8000602: fa03 f500 lsl.w r5, r3, r0
8000606: 432a orrs r2, r5
8000608: 6122 str r2, [r4, #16]
800060a: eb04 0480 add.w r4, r4, r0, lsl #2
800060e: 408b lsls r3, r1
8000610: 6962 ldr r2, [r4, #20]
8000612: 4313 orrs r3, r2
8000614: 6163 str r3, [r4, #20]
8000616: b003 add sp, #12
8000618: bd30 pop {r4, r5, pc}
0800061a <block_trim_free>:
800061a: b538 push {r3, r4, r5, lr}
800061c: 684b ldr r3, [r1, #4]
800061e: 460c mov r4, r1
8000620: f023 0303 bic.w r3, r3, #3
8000624: f102 0110 add.w r1, r2, #16
8000628: 428b cmp r3, r1
800062a: 4605 mov r5, r0
800062c: d310 bcc.n 8000650 <block_trim_free+0x36>
800062e: 4611 mov r1, r2
8000630: 4620 mov r0, r4
8000632: f7ff ff6e bl 8000512 <block_split>
8000636: 4601 mov r1, r0
8000638: 4620 mov r0, r4
800063a: f7ff ff57 bl 80004ec <block_link_next>
800063e: 684b ldr r3, [r1, #4]
8000640: f043 0302 orr.w r3, r3, #2
8000644: 604b str r3, [r1, #4]
8000646: 4628 mov r0, r5
8000648: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr}
800064c: f7ff bfc2 b.w 80005d4 <block_insert>
8000650: bd38 pop {r3, r4, r5, pc}
08000652 <block_remove>:
8000652: b537 push {r0, r1, r2, r4, r5, lr}
8000654: 4605 mov r5, r0
8000656: 6848 ldr r0, [r1, #4]
8000658: 460c mov r4, r1
800065a: aa01 add r2, sp, #4
800065c: 4669 mov r1, sp
800065e: f020 0003 bic.w r0, r0, #3
8000662: f7ff ffa5 bl 80005b0 <mapping_insert>
8000666: e9dd 2300 ldrd r2, r3, [sp]
800066a: 4621 mov r1, r4
800066c: 4628 mov r0, r5
800066e: f7ff ff7f bl 8000570 <remove_free_block>
8000672: b003 add sp, #12
8000674: bd30 pop {r4, r5, pc}
08000676 <block_merge_next>:
8000676: b538 push {r3, r4, r5, lr}
8000678: 4602 mov r2, r0
800067a: 4608 mov r0, r1
800067c: 460c mov r4, r1
800067e: f7ff ff2f bl 80004e0 <block_next>
8000682: 6843 ldr r3, [r0, #4]
8000684: 07db lsls r3, r3, #31
8000686: 4605 mov r5, r0
8000688: d50d bpl.n 80006a6 <block_merge_next+0x30>
800068a: 4601 mov r1, r0
800068c: 4610 mov r0, r2
800068e: f7ff ffe0 bl 8000652 <block_remove>
8000692: 686b ldr r3, [r5, #4]
8000694: 6862 ldr r2, [r4, #4]
8000696: f023 0303 bic.w r3, r3, #3
800069a: 3204 adds r2, #4
800069c: 4413 add r3, r2
800069e: 6063 str r3, [r4, #4]
80006a0: 4620 mov r0, r4
80006a2: f7ff ff23 bl 80004ec <block_link_next>
80006a6: 4620 mov r0, r4
80006a8: bd38 pop {r3, r4, r5, pc}
080006aa <block_locate_free>:
80006aa: b537 push {r0, r1, r2, r4, r5, lr}
80006ac: 2300 movs r3, #0
80006ae: 4604 mov r4, r0
80006b0: e9cd 3300 strd r3, r3, [sp]
80006b4: 4608 mov r0, r1
80006b6: b919 cbnz r1, 80006c0 <block_locate_free+0x16>
80006b8: 2500 movs r5, #0
80006ba: 4628 mov r0, r5
80006bc: b003 add sp, #12
80006be: bd30 pop {r4, r5, pc}
80006c0: 293f cmp r1, #63 ; 0x3f
80006c2: d907 bls.n 80006d4 <block_locate_free+0x2a>
80006c4: fab1 f381 clz r3, r1
80006c8: f1c3 021b rsb r2, r3, #27
80006cc: 2301 movs r3, #1
80006ce: 4093 lsls r3, r2
80006d0: 3b01 subs r3, #1
80006d2: 4418 add r0, r3
80006d4: aa01 add r2, sp, #4
80006d6: 4669 mov r1, sp
80006d8: f7ff ff6a bl 80005b0 <mapping_insert>
80006dc: 9a00 ldr r2, [sp, #0]
80006de: 9901 ldr r1, [sp, #4]
80006e0: eb04 0082 add.w r0, r4, r2, lsl #2
80006e4: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
80006e8: 6940 ldr r0, [r0, #20]
80006ea: fa03 f101 lsl.w r1, r3, r1
80006ee: 4001 ands r1, r0
80006f0: d10c bne.n 800070c <block_locate_free+0x62>
80006f2: 3201 adds r2, #1
80006f4: 4093 lsls r3, r2
80006f6: 6922 ldr r2, [r4, #16]
80006f8: 401a ands r2, r3
80006fa: d0dd beq.n 80006b8 <block_locate_free+0xe>
80006fc: fa92 f2a2 rbit r2, r2
8000700: fab2 f282 clz r2, r2
8000704: eb04 0382 add.w r3, r4, r2, lsl #2
8000708: 9200 str r2, [sp, #0]
800070a: 6959 ldr r1, [r3, #20]
800070c: fa91 f3a1 rbit r3, r1
8000710: 2900 cmp r1, #0
8000712: fab3 f383 clz r3, r3
8000716: bf08 it eq
8000718: f04f 33ff moveq.w r3, #4294967295 ; 0xffffffff
800071c: eb03 1202 add.w r2, r3, r2, lsl #4
8000720: eb04 0282 add.w r2, r4, r2, lsl #2
8000724: 9301 str r3, [sp, #4]
8000726: 6c55 ldr r5, [r2, #68] ; 0x44
8000728: 2d00 cmp r5, #0
800072a: d0c6 beq.n 80006ba <block_locate_free+0x10>
800072c: 9a00 ldr r2, [sp, #0]
800072e: 4629 mov r1, r5
8000730: 4620 mov r0, r4
8000732: f7ff ff1d bl 8000570 <remove_free_block>
8000736: e7c0 b.n 80006ba <block_locate_free+0x10>
08000738 <tlsf_add_pool>:
8000738: b538 push {r3, r4, r5, lr}
800073a: 3a08 subs r2, #8
800073c: f011 0303 ands.w r3, r1, #3
8000740: 460c mov r4, r1
8000742: f022 0203 bic.w r2, r2, #3
8000746: d114 bne.n 8000772 <tlsf_add_pool+0x3a>
8000748: 490c ldr r1, [pc, #48] ; (800077c <tlsf_add_pool+0x44>)
800074a: f1a2 050c sub.w r5, r2, #12
800074e: 428d cmp r5, r1
8000750: d811 bhi.n 8000776 <tlsf_add_pool+0x3e>
8000752: 4625 mov r5, r4
8000754: f042 0201 orr.w r2, r2, #1
8000758: f855 3904 ldr.w r3, [r5], #-4
800075c: 606a str r2, [r5, #4]
800075e: 4629 mov r1, r5
8000760: f7ff ff38 bl 80005d4 <block_insert>
8000764: 4628 mov r0, r5
8000766: f7ff fec1 bl 80004ec <block_link_next>
800076a: 2302 movs r3, #2
800076c: 6043 str r3, [r0, #4]
800076e: 4620 mov r0, r4
8000770: bd38 pop {r3, r4, r5, pc}
8000772: 2400 movs r4, #0
8000774: e7fb b.n 800076e <tlsf_add_pool+0x36>
8000776: 461c mov r4, r3
8000778: e7f9 b.n 800076e <tlsf_add_pool+0x36>
800077a: bf00 nop
800077c: 0001fff4 .word 0x0001fff4
08000780 <tlsf_create>:
8000780: f010 0203 ands.w r2, r0, #3
8000784: b530 push {r4, r5, lr}
8000786: d113 bne.n 80007b0 <tlsf_create+0x30>
8000788: e9c0 0002 strd r0, r0, [r0, #8]
800078c: 6102 str r2, [r0, #16]
800078e: f100 0114 add.w r1, r0, #20
8000792: f100 0344 add.w r3, r0, #68 ; 0x44
8000796: f500 7451 add.w r4, r0, #836 ; 0x344
800079a: f841 2b04 str.w r2, [r1], #4
800079e: f103 0540 add.w r5, r3, #64 ; 0x40
80007a2: f843 0b04 str.w r0, [r3], #4
80007a6: 42ab cmp r3, r5
80007a8: d1fb bne.n 80007a2 <tlsf_create+0x22>
80007aa: 429c cmp r4, r3
80007ac: d1f5 bne.n 800079a <tlsf_create+0x1a>
80007ae: bd30 pop {r4, r5, pc}
80007b0: 2000 movs r0, #0
80007b2: e7fc b.n 80007ae <tlsf_create+0x2e>
080007b4 <tlsf_create_with_pool>:
80007b4: b570 push {r4, r5, r6, lr}
80007b6: 460e mov r6, r1
80007b8: 4605 mov r5, r0
80007ba: f7ff ffe1 bl 8000780 <tlsf_create>
80007be: f5a6 7251 sub.w r2, r6, #836 ; 0x344
80007c2: 4604 mov r4, r0
80007c4: f505 7151 add.w r1, r5, #836 ; 0x344
80007c8: f7ff ffb6 bl 8000738 <tlsf_add_pool>
80007cc: 4620 mov r0, r4
80007ce: bd70 pop {r4, r5, r6, pc}
080007d0 <tlsf_malloc>:
80007d0: b537 push {r0, r1, r2, r4, r5, lr}
80007d2: 4605 mov r5, r0
80007d4: 4608 mov r0, r1
80007d6: 2104 movs r1, #4
80007d8: f7ff feba bl 8000550 <adjust_request_size>
80007dc: 4601 mov r1, r0
80007de: 9001 str r0, [sp, #4]
80007e0: 4628 mov r0, r5
80007e2: f7ff ff62 bl 80006aa <block_locate_free>
80007e6: 4604 mov r4, r0
80007e8: b140 cbz r0, 80007fc <tlsf_malloc+0x2c>
80007ea: 4601 mov r1, r0
80007ec: 9a01 ldr r2, [sp, #4]
80007ee: 4628 mov r0, r5
80007f0: f7ff ff13 bl 800061a <block_trim_free>
80007f4: 4620 mov r0, r4
80007f6: f7ff fe7f bl 80004f8 <block_mark_as_used>
80007fa: 3408 adds r4, #8
80007fc: 4620 mov r0, r4
80007fe: b003 add sp, #12
8000800: bd30 pop {r4, r5, pc}
08000802 <tlsf_free>:
8000802: b570 push {r4, r5, r6, lr}
8000804: 4606 mov r6, r0
8000806: 460c mov r4, r1
8000808: b359 cbz r1, 8000862 <tlsf_free+0x60>
800080a: f1a1 0508 sub.w r5, r1, #8
800080e: 4628 mov r0, r5
8000810: f7ff fe6c bl 80004ec <block_link_next>
8000814: 6843 ldr r3, [r0, #4]
8000816: f043 0302 orr.w r3, r3, #2
800081a: 6043 str r3, [r0, #4]
800081c: f851 3c04 ldr.w r3, [r1, #-4]
8000820: f043 0301 orr.w r3, r3, #1
8000824: f841 3c04 str.w r3, [r1, #-4]
8000828: 079b lsls r3, r3, #30
800082a: d510 bpl.n 800084e <tlsf_free+0x4c>
800082c: f851 5c08 ldr.w r5, [r1, #-8]
8000830: 4630 mov r0, r6
8000832: 4629 mov r1, r5
8000834: f7ff ff0d bl 8000652 <block_remove>
8000838: f854 3c04 ldr.w r3, [r4, #-4]
800083c: 686a ldr r2, [r5, #4]
800083e: f023 0303 bic.w r3, r3, #3
8000842: 4413 add r3, r2
8000844: 3304 adds r3, #4
8000846: 606b str r3, [r5, #4]
8000848: 4628 mov r0, r5
800084a: f7ff fe4f bl 80004ec <block_link_next>
800084e: 4629 mov r1, r5
8000850: 4630 mov r0, r6
8000852: f7ff ff10 bl 8000676 <block_merge_next>
8000856: 4601 mov r1, r0
8000858: 4630 mov r0, r6
800085a: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
800085e: f7ff beb9 b.w 80005d4 <block_insert>
8000862: bd70 pop {r4, r5, r6, pc}
08000864 <_ZN4modm8IODevice5writeEPKc>:
8000864: b538 push {r3, r4, r5, lr}
8000866: 4604 mov r4, r0
8000868: 460d mov r5, r1
800086a: f815 1b01 ldrb.w r1, [r5], #1
800086e: b121 cbz r1, 800087a <_ZN4modm8IODevice5writeEPKc+0x16>
8000870: 6823 ldr r3, [r4, #0]
8000872: 4620 mov r0, r4
8000874: 689b ldr r3, [r3, #8]
8000876: 4798 blx r3
8000878: e7f7 b.n 800086a <_ZN4modm8IODevice5writeEPKc+0x6>
800087a: bd38 pop {r3, r4, r5, pc}
0800087c <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EED1Ev>:
800087c: 4770 bx lr
0800087e <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE4readERc>:
800087e: 4608 mov r0, r1
8000880: f000 bca0 b.w 80011c4 <_ZN4modm8platform6Usart24readERh>
08000884 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5flushEv>:
8000884: f000 bc98 b.w 80011b8 <_ZN4modm8platform6Usart216flushWriteBufferEv>
08000888 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5writeEc>:
8000888: b510 push {r4, lr}
800088a: 460c mov r4, r1
800088c: 4620 mov r0, r4
800088e: f000 fc51 bl 8001134 <_ZN4modm8platform6Usart25writeEh>
8000892: 2800 cmp r0, #0
8000894: d0fa beq.n 800088c <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5writeEc+0x4>
8000896: bd10 pop {r4, pc}
08000898 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EED0Ev>:
8000898: b510 push {r4, lr}
800089a: 2104 movs r1, #4
800089c: 4604 mov r4, r0
800089e: f7ff fe1d bl 80004dc <_ZdlPvj>
80008a2: 4620 mov r0, r4
80008a4: bd10 pop {r4, pc}
...
080008a8 <modm_abandon>:
80008a8: b5f8 push {r3, r4, r5, r6, r7, lr}
80008aa: 4605 mov r5, r0
80008ac: 492c ldr r1, [pc, #176] ; (8000960 <modm_abandon+0xb8>)
80008ae: 482d ldr r0, [pc, #180] ; (8000964 <modm_abandon+0xbc>)
80008b0: f7ff fc81 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80008b4: 6829 ldr r1, [r5, #0]
80008b6: f7ff fc7e bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80008ba: 492b ldr r1, [pc, #172] ; (8000968 <modm_abandon+0xc0>)
80008bc: f7ff fc7b bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80008c0: 686b ldr r3, [r5, #4]
80008c2: 3301 adds r3, #1
80008c4: d016 beq.n 80008f4 <modm_abandon+0x4c>
80008c6: 4929 ldr r1, [pc, #164] ; (800096c <modm_abandon+0xc4>)
80008c8: 4826 ldr r0, [pc, #152] ; (8000964 <modm_abandon+0xbc>)
80008ca: f7ff fc74 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80008ce: 6869 ldr r1, [r5, #4]
80008d0: 4604 mov r4, r0
80008d2: f000 f8a3 bl 8000a1c <_ZN4modm8IOStream12writePointerEPKv>
80008d6: 4620 mov r0, r4
80008d8: 4925 ldr r1, [pc, #148] ; (8000970 <modm_abandon+0xc8>)
80008da: f7ff fc6c bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80008de: 6843 ldr r3, [r0, #4]
80008e0: 686e ldr r6, [r5, #4]
80008e2: 4604 mov r4, r0
80008e4: bb13 cbnz r3, 800092c <modm_abandon+0x84>
80008e6: 4631 mov r1, r6
80008e8: f000 f9ca bl 8000c80 <_ZN4modm8IOStream12writeIntegerEm>
80008ec: 4921 ldr r1, [pc, #132] ; (8000974 <modm_abandon+0xcc>)
80008ee: 4620 mov r0, r4
80008f0: f7ff fc61 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80008f4: 4c20 ldr r4, [pc, #128] ; (8000978 <modm_abandon+0xd0>)
80008f6: 4921 ldr r1, [pc, #132] ; (800097c <modm_abandon+0xd4>)
80008f8: 481a ldr r0, [pc, #104] ; (8000964 <modm_abandon+0xbc>)
80008fa: 4e21 ldr r6, [pc, #132] ; (8000980 <modm_abandon+0xd8>)
80008fc: f7ff fc5b bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000900: 6822 ldr r2, [r4, #0]
8000902: f422 6240 bic.w r2, r2, #3072 ; 0xc00
8000906: f442 6280 orr.w r2, r2, #1024 ; 0x400
800090a: 6022 str r2, [r4, #0]
800090c: 250b movs r5, #11
800090e: 2720 movs r7, #32
8000910: f644 6020 movw r0, #20000 ; 0x4e20
8000914: 61a7 str r7, [r4, #24]
8000916: f000 fd1b bl 8001350 <_ZN4modm8delay_usEm>
800091a: f44f 1300 mov.w r3, #2097152 ; 0x200000
800091e: 61a3 str r3, [r4, #24]
8000920: 4630 mov r0, r6
8000922: f000 fd15 bl 8001350 <_ZN4modm8delay_usEm>
8000926: 3d01 subs r5, #1
8000928: d1f2 bne.n 8000910 <modm_abandon+0x68>
800092a: bdf8 pop {r3, r4, r5, r6, r7, pc}
800092c: 2b02 cmp r3, #2
800092e: f04f 0518 mov.w r5, #24
8000932: d10a bne.n 800094a <modm_abandon+0xa2>
8000934: fa26 f105 lsr.w r1, r6, r5
8000938: 3d08 subs r5, #8
800093a: b2c9 uxtb r1, r1
800093c: 4620 mov r0, r4
800093e: b2ed uxtb r5, r5
8000940: f000 f85a bl 80009f8 <_ZN4modm8IOStream8writeBinEh>
8000944: 2df8 cmp r5, #248 ; 0xf8
8000946: d1f5 bne.n 8000934 <modm_abandon+0x8c>
8000948: e7d0 b.n 80008ec <modm_abandon+0x44>
800094a: fa26 f105 lsr.w r1, r6, r5
800094e: 3d08 subs r5, #8
8000950: b2c9 uxtb r1, r1
8000952: 4620 mov r0, r4
8000954: b2ed uxtb r5, r5
8000956: f000 f843 bl 80009e0 <_ZN4modm8IOStream8writeHexEh>
800095a: 2df8 cmp r5, #248 ; 0xf8
800095c: d1f5 bne.n 800094a <modm_abandon+0xa2>
800095e: e7c5 b.n 80008ec <modm_abandon+0x44>
8000960: 080012c2 .word 0x080012c2
8000964: 20000c84 .word 0x20000c84
8000968: 080012cc .word 0x080012cc
800096c: 080012ce .word 0x080012ce
8000970: 080012d2 .word 0x080012d2
8000974: 080012d5 .word 0x080012d5
8000978: 40020000 .word 0x40020000
800097c: 080012d7 .word 0x080012d7
8000980: 0002bf20 .word 0x0002bf20
08000984 <_GLOBAL__sub_I_loggerDevice>:
8000984: b510 push {r4, lr}
8000986: 4c0a ldr r4, [pc, #40] ; (80009b0 <_GLOBAL__sub_I_loggerDevice+0x2c>)
8000988: 4a0a ldr r2, [pc, #40] ; (80009b4 <_GLOBAL__sub_I_loggerDevice+0x30>)
800098a: 490b ldr r1, [pc, #44] ; (80009b8 <_GLOBAL__sub_I_loggerDevice+0x34>)
800098c: 4620 mov r0, r4
800098e: f7ff fda3 bl 80004d8 <__aeabi_atexit>
8000992: 4a0a ldr r2, [pc, #40] ; (80009bc <_GLOBAL__sub_I_loggerDevice+0x38>)
8000994: 2300 movs r3, #0
8000996: 6014 str r4, [r2, #0]
8000998: 6053 str r3, [r2, #4]
800099a: 4a09 ldr r2, [pc, #36] ; (80009c0 <_GLOBAL__sub_I_loggerDevice+0x3c>)
800099c: e9c2 4300 strd r4, r3, [r2]
80009a0: 4a08 ldr r2, [pc, #32] ; (80009c4 <_GLOBAL__sub_I_loggerDevice+0x40>)
80009a2: e9c2 4300 strd r4, r3, [r2]
80009a6: 4a08 ldr r2, [pc, #32] ; (80009c8 <_GLOBAL__sub_I_loggerDevice+0x44>)
80009a8: e9c2 4300 strd r4, r3, [r2]
80009ac: bd10 pop {r4, pc}
80009ae: bf00 nop
80009b0: 20000c04 .word 0x20000c04
80009b4: 20000c00 .word 0x20000c00
80009b8: 0800087d .word 0x0800087d
80009bc: 20000c7c .word 0x20000c7c
80009c0: 20000c74 .word 0x20000c74
80009c4: 20000c8c .word 0x20000c8c
80009c8: 20000c84 .word 0x20000c84
080009cc <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>:
80009cc: 6800 ldr r0, [r0, #0]
80009ce: 6803 ldr r3, [r0, #0]
80009d0: 2909 cmp r1, #9
80009d2: 689a ldr r2, [r3, #8]
80009d4: bf8c ite hi
80009d6: 2337 movhi r3, #55 ; 0x37
80009d8: 2330 movls r3, #48 ; 0x30
80009da: 4419 add r1, r3
80009dc: b2c9 uxtb r1, r1
80009de: 4710 bx r2
080009e0 <_ZN4modm8IOStream8writeHexEh>:
80009e0: b538 push {r3, r4, r5, lr}
80009e2: 4605 mov r5, r0
80009e4: 460c mov r4, r1
80009e6: 0909 lsrs r1, r1, #4
80009e8: f7ff fff0 bl 80009cc <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>
80009ec: f004 010f and.w r1, r4, #15
80009f0: 4628 mov r0, r5
80009f2: f7ff ffeb bl 80009cc <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>
80009f6: bd38 pop {r3, r4, r5, pc}
080009f8 <_ZN4modm8IOStream8writeBinEh>:
80009f8: b570 push {r4, r5, r6, lr}
80009fa: 4606 mov r6, r0
80009fc: 460c mov r4, r1
80009fe: 2508 movs r5, #8
8000a00: 6830 ldr r0, [r6, #0]
8000a02: 6803 ldr r3, [r0, #0]
8000a04: f014 0f80 tst.w r4, #128 ; 0x80
8000a08: bf14 ite ne
8000a0a: 2131 movne r1, #49 ; 0x31
8000a0c: 2130 moveq r1, #48 ; 0x30
8000a0e: 689b ldr r3, [r3, #8]
8000a10: 4798 blx r3
8000a12: 0064 lsls r4, r4, #1
8000a14: 3d01 subs r5, #1
8000a16: b2e4 uxtb r4, r4
8000a18: d1f2 bne.n 8000a00 <_ZN4modm8IOStream8writeBinEh+0x8>
8000a1a: bd70 pop {r4, r5, r6, pc}
08000a1c <_ZN4modm8IOStream12writePointerEPKv>:
8000a1c: b570 push {r4, r5, r6, lr}
8000a1e: 4605 mov r5, r0
8000a20: 6800 ldr r0, [r0, #0]
8000a22: 6803 ldr r3, [r0, #0]
8000a24: 460e mov r6, r1
8000a26: 689b ldr r3, [r3, #8]
8000a28: 2130 movs r1, #48 ; 0x30
8000a2a: 4798 blx r3
8000a2c: 6828 ldr r0, [r5, #0]
8000a2e: 6803 ldr r3, [r0, #0]
8000a30: 2178 movs r1, #120 ; 0x78
8000a32: 689b ldr r3, [r3, #8]
8000a34: 4798 blx r3
8000a36: 2418 movs r4, #24
8000a38: fa26 f104 lsr.w r1, r6, r4
8000a3c: 3c08 subs r4, #8
8000a3e: b2c9 uxtb r1, r1
8000a40: 4628 mov r0, r5
8000a42: b2e4 uxtb r4, r4
8000a44: f7ff ffcc bl 80009e0 <_ZN4modm8IOStream8writeHexEh>
8000a48: 2cf8 cmp r4, #248 ; 0xf8
8000a4a: d1f5 bne.n 8000a38 <_ZN4modm8IOStream12writePointerEPKv+0x1c>
8000a4c: bd70 pop {r4, r5, r6, pc}
08000a4e <_out_rev>:
8000a4e: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
8000a52: f8dd 903c ldr.w r9, [sp, #60] ; 0x3c
8000a56: f019 0f03 tst.w r9, #3
8000a5a: e9dd 460d ldrd r4, r6, [sp, #52] ; 0x34
8000a5e: 4607 mov r7, r0
8000a60: 468b mov fp, r1
8000a62: 4615 mov r5, r2
8000a64: d10b bne.n 8000a7e <_out_rev+0x30>
8000a66: 46a0 mov r8, r4
8000a68: eba2 0a04 sub.w sl, r2, r4
8000a6c: 45b0 cmp r8, r6
8000a6e: eb0a 0208 add.w r2, sl, r8
8000a72: d314 bcc.n 8000a9e <_out_rev+0x50>
8000a74: 1b32 subs r2, r6, r4
8000a76: 42b4 cmp r4, r6
8000a78: bf88 it hi
8000a7a: 2200 movhi r2, #0
8000a7c: 442a add r2, r5
8000a7e: 990c ldr r1, [sp, #48] ; 0x30
8000a80: eb01 0804 add.w r8, r1, r4
8000a84: 4414 add r4, r2
8000a86: 42a2 cmp r2, r4
8000a88: d011 beq.n 8000aae <_out_rev+0x60>
8000a8a: f102 0a01 add.w sl, r2, #1
8000a8e: f818 0d01 ldrb.w r0, [r8, #-1]!
8000a92: 9301 str r3, [sp, #4]
8000a94: 4659 mov r1, fp
8000a96: 47b8 blx r7
8000a98: 9b01 ldr r3, [sp, #4]
8000a9a: 4652 mov r2, sl
8000a9c: e7f3 b.n 8000a86 <_out_rev+0x38>
8000a9e: 4659 mov r1, fp
8000aa0: 2020 movs r0, #32
8000aa2: 9301 str r3, [sp, #4]
8000aa4: f108 0801 add.w r8, r8, #1
8000aa8: 47b8 blx r7
8000aaa: 9b01 ldr r3, [sp, #4]
8000aac: e7de b.n 8000a6c <_out_rev+0x1e>
8000aae: f019 0f02 tst.w r9, #2
8000ab2: d00a beq.n 8000aca <_out_rev+0x7c>
8000ab4: eba4 0905 sub.w r9, r4, r5
8000ab8: 46c8 mov r8, r9
8000aba: 4546 cmp r6, r8
8000abc: eb05 0208 add.w r2, r5, r8
8000ac0: d807 bhi.n 8000ad2 <_out_rev+0x84>
8000ac2: 4435 add r5, r6
8000ac4: 454e cmp r6, r9
8000ac6: bf28 it cs
8000ac8: 462c movcs r4, r5
8000aca: 4620 mov r0, r4
8000acc: b003 add sp, #12
8000ace: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
8000ad2: 4659 mov r1, fp
8000ad4: 2020 movs r0, #32
8000ad6: 9301 str r3, [sp, #4]
8000ad8: f108 0801 add.w r8, r8, #1
8000adc: 47b8 blx r7
8000ade: 9b01 ldr r3, [sp, #4]
8000ae0: e7eb b.n 8000aba <_out_rev+0x6c>
08000ae2 <_ntoa_format>:
8000ae2: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
8000ae6: e9dd 760d ldrd r7, r6, [sp, #52] ; 0x34
8000aea: f016 0f02 tst.w r6, #2
8000aee: e9dd 5408 ldrd r5, r4, [sp, #32]
8000af2: e9dd c80b ldrd ip, r8, [sp, #44] ; 0x2c
8000af6: f89d e028 ldrb.w lr, [sp, #40] ; 0x28
8000afa: d123 bne.n 8000b44 <_ntoa_format+0x62>
8000afc: f006 0901 and.w r9, r6, #1
8000b00: b14f cbz r7, 8000b16 <_ntoa_format+0x34>
8000b02: f1b9 0f00 cmp.w r9, #0
8000b06: d006 beq.n 8000b16 <_ntoa_format+0x34>
8000b08: f1be 0f00 cmp.w lr, #0
8000b0c: d102 bne.n 8000b14 <_ntoa_format+0x32>
8000b0e: f016 0f0c tst.w r6, #12
8000b12: d000 beq.n 8000b16 <_ntoa_format+0x34>
8000b14: 3f01 subs r7, #1
8000b16: f04f 0a30 mov.w sl, #48 ; 0x30
8000b1a: 4544 cmp r4, r8
8000b1c: d201 bcs.n 8000b22 <_ntoa_format+0x40>
8000b1e: 2c20 cmp r4, #32
8000b20: d10c bne.n 8000b3c <_ntoa_format+0x5a>
8000b22: f04f 0a30 mov.w sl, #48 ; 0x30
8000b26: f1b9 0f00 cmp.w r9, #0
8000b2a: d00b beq.n 8000b44 <_ntoa_format+0x62>
8000b2c: 42bc cmp r4, r7
8000b2e: d209 bcs.n 8000b44 <_ntoa_format+0x62>
8000b30: 2c1f cmp r4, #31
8000b32: d807 bhi.n 8000b44 <_ntoa_format+0x62>
8000b34: f805 a004 strb.w sl, [r5, r4]
8000b38: 3401 adds r4, #1
8000b3a: e7f4 b.n 8000b26 <_ntoa_format+0x44>
8000b3c: f805 a004 strb.w sl, [r5, r4]
8000b40: 3401 adds r4, #1
8000b42: e7ea b.n 8000b1a <_ntoa_format+0x38>
8000b44: f016 0f10 tst.w r6, #16
8000b48: d01f beq.n 8000b8a <_ntoa_format+0xa8>
8000b4a: f416 6f80 tst.w r6, #1024 ; 0x400
8000b4e: d12f bne.n 8000bb0 <_ntoa_format+0xce>
8000b50: b374 cbz r4, 8000bb0 <_ntoa_format+0xce>
8000b52: 4544 cmp r4, r8
8000b54: d001 beq.n 8000b5a <_ntoa_format+0x78>
8000b56: 42bc cmp r4, r7
8000b58: d12a bne.n 8000bb0 <_ntoa_format+0xce>
8000b5a: f1b4 0801 subs.w r8, r4, #1
8000b5e: d026 beq.n 8000bae <_ntoa_format+0xcc>
8000b60: f1bc 0f10 cmp.w ip, #16
8000b64: d12f bne.n 8000bc6 <_ntoa_format+0xe4>
8000b66: 3c02 subs r4, #2
8000b68: f016 0f20 tst.w r6, #32
8000b6c: d12d bne.n 8000bca <_ntoa_format+0xe8>
8000b6e: 2c1f cmp r4, #31
8000b70: d815 bhi.n 8000b9e <_ntoa_format+0xbc>
8000b72: f04f 0c78 mov.w ip, #120 ; 0x78
8000b76: f805 c004 strb.w ip, [r5, r4]
8000b7a: 3401 adds r4, #1
8000b7c: 2c1f cmp r4, #31
8000b7e: d80e bhi.n 8000b9e <_ntoa_format+0xbc>
8000b80: f04f 0c30 mov.w ip, #48 ; 0x30
8000b84: f805 c004 strb.w ip, [r5, r4]
8000b88: 3401 adds r4, #1
8000b8a: 2c1f cmp r4, #31
8000b8c: d807 bhi.n 8000b9e <_ntoa_format+0xbc>
8000b8e: f1be 0f00 cmp.w lr, #0
8000b92: d01f beq.n 8000bd4 <_ntoa_format+0xf2>
8000b94: f04f 0c2d mov.w ip, #45 ; 0x2d
8000b98: f805 c004 strb.w ip, [r5, r4]
8000b9c: 3401 adds r4, #1
8000b9e: e9cd 760a strd r7, r6, [sp, #40] ; 0x28
8000ba2: e9cd 5408 strd r5, r4, [sp, #32]
8000ba6: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
8000baa: f7ff bf50 b.w 8000a4e <_out_rev>
8000bae: 4644 mov r4, r8
8000bb0: f1bc 0f10 cmp.w ip, #16
8000bb4: d0d8 beq.n 8000b68 <_ntoa_format+0x86>
8000bb6: f1bc 0f02 cmp.w ip, #2
8000bba: d1df bne.n 8000b7c <_ntoa_format+0x9a>
8000bbc: 2c1f cmp r4, #31
8000bbe: d8ee bhi.n 8000b9e <_ntoa_format+0xbc>
8000bc0: f04f 0c62 mov.w ip, #98 ; 0x62
8000bc4: e7d7 b.n 8000b76 <_ntoa_format+0x94>
8000bc6: 4644 mov r4, r8
8000bc8: e7f5 b.n 8000bb6 <_ntoa_format+0xd4>
8000bca: 2c1f cmp r4, #31
8000bcc: d8e7 bhi.n 8000b9e <_ntoa_format+0xbc>
8000bce: f04f 0c58 mov.w ip, #88 ; 0x58
8000bd2: e7d0 b.n 8000b76 <_ntoa_format+0x94>
8000bd4: f016 0f04 tst.w r6, #4
8000bd8: d002 beq.n 8000be0 <_ntoa_format+0xfe>
8000bda: f04f 0c2b mov.w ip, #43 ; 0x2b
8000bde: e7db b.n 8000b98 <_ntoa_format+0xb6>
8000be0: f016 0f08 tst.w r6, #8
8000be4: d0db beq.n 8000b9e <_ntoa_format+0xbc>
8000be6: f04f 0c20 mov.w ip, #32
8000bea: e7d5 b.n 8000b98 <_ntoa_format+0xb6>
08000bec <_ntoa_long>:
8000bec: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
8000bf0: b091 sub sp, #68 ; 0x44
8000bf2: 9d18 ldr r5, [sp, #96] ; 0x60
8000bf4: 9e1a ldr r6, [sp, #104] ; 0x68
8000bf6: 9f1d ldr r7, [sp, #116] ; 0x74
8000bf8: b90d cbnz r5, 8000bfe <_ntoa_long+0x12>
8000bfa: f027 0710 bic.w r7, r7, #16
8000bfe: 057c lsls r4, r7, #21
8000c00: d500 bpl.n 8000c04 <_ntoa_long+0x18>
8000c02: b30d cbz r5, 8000c48 <_ntoa_long+0x5c>
8000c04: f017 0f20 tst.w r7, #32
8000c08: 46ac mov ip, r5
8000c0a: f10d 0e20 add.w lr, sp, #32
8000c0e: f04f 0500 mov.w r5, #0
8000c12: bf14 ite ne
8000c14: f04f 0837 movne.w r8, #55 ; 0x37
8000c18: f04f 0857 moveq.w r8, #87 ; 0x57
8000c1c: fbbc f9f6 udiv r9, ip, r6
8000c20: fb06 c919 mls r9, r6, r9, ip
8000c24: fa4f f489 sxtb.w r4, r9
8000c28: f1b9 0f09 cmp.w r9, #9
8000c2c: bf94 ite ls
8000c2e: 3430 addls r4, #48 ; 0x30
8000c30: 4444 addhi r4, r8
8000c32: b2e4 uxtb r4, r4
8000c34: 45b4 cmp ip, r6
8000c36: f80e 4b01 strb.w r4, [lr], #1
8000c3a: fbbc f4f6 udiv r4, ip, r6
8000c3e: f105 0501 add.w r5, r5, #1
8000c42: d301 bcc.n 8000c48 <_ntoa_long+0x5c>
8000c44: 2d20 cmp r5, #32
8000c46: d110 bne.n 8000c6a <_ntoa_long+0x7e>
8000c48: 9c1c ldr r4, [sp, #112] ; 0x70
8000c4a: 9405 str r4, [sp, #20]
8000c4c: 9c1b ldr r4, [sp, #108] ; 0x6c
8000c4e: 9706 str r7, [sp, #24]
8000c50: e9cd 6403 strd r6, r4, [sp, #12]
8000c54: f89d 4064 ldrb.w r4, [sp, #100] ; 0x64
8000c58: e9cd 5401 strd r5, r4, [sp, #4]
8000c5c: ac08 add r4, sp, #32
8000c5e: 9400 str r4, [sp, #0]
8000c60: f7ff ff3f bl 8000ae2 <_ntoa_format>
8000c64: b011 add sp, #68 ; 0x44
8000c66: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
8000c6a: 46a4 mov ip, r4
8000c6c: e7d6 b.n 8000c1c <_ntoa_long+0x30>
08000c6e <_ZN12_GLOBAL__N_18out_charEcPvjj>:
8000c6e: b128 cbz r0, 8000c7c <_ZN12_GLOBAL__N_18out_charEcPvjj+0xe>
8000c70: 680b ldr r3, [r1, #0]
8000c72: 681a ldr r2, [r3, #0]
8000c74: 4601 mov r1, r0
8000c76: 6892 ldr r2, [r2, #8]
8000c78: 4618 mov r0, r3
8000c7a: 4710 bx r2
8000c7c: 4770 bx lr
...
08000c80 <_ZN4modm8IOStream12writeIntegerEm>:
8000c80: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
8000c82: 2200 movs r2, #0
8000c84: f44f 7380 mov.w r3, #256 ; 0x100
8000c88: e9cd 2304 strd r2, r3, [sp, #16]
8000c8c: 230a movs r3, #10
8000c8e: e9cd 2301 strd r2, r3, [sp, #4]
8000c92: 9100 str r1, [sp, #0]
8000c94: 9203 str r2, [sp, #12]
8000c96: 4601 mov r1, r0
8000c98: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
8000c9c: 4802 ldr r0, [pc, #8] ; (8000ca8 <_ZN4modm8IOStream12writeIntegerEm+0x28>)
8000c9e: f7ff ffa5 bl 8000bec <_ntoa_long>
8000ca2: b007 add sp, #28
8000ca4: f85d fb04 ldr.w pc, [sp], #4
8000ca8: 08000c6f .word 0x08000c6f
08000cac <_ZN4modm8platform3Rcc19enableInternalClockEm>:
8000cac: 4b08 ldr r3, [pc, #32] ; (8000cd0 <_ZN4modm8platform3Rcc19enableInternalClockEm+0x24>)
8000cae: 681a ldr r2, [r3, #0]
8000cb0: f042 0201 orr.w r2, r2, #1
8000cb4: 601a str r2, [r3, #0]
8000cb6: 681a ldr r2, [r3, #0]
8000cb8: f012 0202 ands.w r2, r2, #2
8000cbc: d105 bne.n 8000cca <_ZN4modm8platform3Rcc19enableInternalClockEm+0x1e>
8000cbe: 3801 subs r0, #1
8000cc0: d1f9 bne.n 8000cb6 <_ZN4modm8platform3Rcc19enableInternalClockEm+0xa>
8000cc2: 3800 subs r0, #0
8000cc4: bf18 it ne
8000cc6: 2001 movne r0, #1
8000cc8: 4770 bx lr
8000cca: 4610 mov r0, r2
8000ccc: e7f9 b.n 8000cc2 <_ZN4modm8platform3Rcc19enableInternalClockEm+0x16>
8000cce: bf00 nop
8000cd0: 40023800 .word 0x40023800
08000cd4 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm>:
8000cd4: b530 push {r4, r5, lr}
8000cd6: 4c16 ldr r4, [pc, #88] ; (8000d30 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x5c>)
8000cd8: 780b ldrb r3, [r1, #0]
8000cda: 6865 ldr r5, [r4, #4]
8000cdc: f025 6574 bic.w r5, r5, #255852544 ; 0xf400000
8000ce0: f425 355f bic.w r5, r5, #228352 ; 0x37c00
8000ce4: f425 757f bic.w r5, r5, #1020 ; 0x3fc
8000ce8: f025 0503 bic.w r5, r5, #3
8000cec: 4328 orrs r0, r5
8000cee: f003 033f and.w r3, r3, #63 ; 0x3f
8000cf2: 884d ldrh r5, [r1, #2]
8000cf4: 4318 orrs r0, r3
8000cf6: f647 73c0 movw r3, #32704 ; 0x7fc0
8000cfa: ea03 1385 and.w r3, r3, r5, lsl #6
8000cfe: 4318 orrs r0, r3
8000d00: 790b ldrb r3, [r1, #4]
8000d02: 085b lsrs r3, r3, #1
8000d04: 3b01 subs r3, #1
8000d06: 041b lsls r3, r3, #16
8000d08: f403 3340 and.w r3, r3, #196608 ; 0x30000
8000d0c: 4303 orrs r3, r0
8000d0e: 6063 str r3, [r4, #4]
8000d10: 6823 ldr r3, [r4, #0]
8000d12: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
8000d16: 6023 str r3, [r4, #0]
8000d18: 6823 ldr r3, [r4, #0]
8000d1a: f013 7300 ands.w r3, r3, #33554432 ; 0x2000000
8000d1e: d105 bne.n 8000d2c <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x58>
8000d20: 3a01 subs r2, #1
8000d22: d1f9 bne.n 8000d18 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x44>
8000d24: 1e10 subs r0, r2, #0
8000d26: bf18 it ne
8000d28: 2001 movne r0, #1
8000d2a: bd30 pop {r4, r5, pc}
8000d2c: 461a mov r2, r3
8000d2e: e7f9 b.n 8000d24 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x50>
8000d30: 40023800 .word 0x40023800
08000d34 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm>:
8000d34: 4b08 ldr r3, [pc, #32] ; (8000d58 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0x24>)
8000d36: 689a ldr r2, [r3, #8]
8000d38: f022 0203 bic.w r2, r2, #3
8000d3c: 4302 orrs r2, r0
8000d3e: 609a str r2, [r3, #8]
8000d40: 0080 lsls r0, r0, #2
8000d42: 689a ldr r2, [r3, #8]
8000d44: f002 020c and.w r2, r2, #12
8000d48: 4282 cmp r2, r0
8000d4a: d003 beq.n 8000d54 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0x20>
8000d4c: 3901 subs r1, #1
8000d4e: d1f8 bne.n 8000d42 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0xe>
8000d50: 4608 mov r0, r1
8000d52: 4770 bx lr
8000d54: 2001 movs r0, #1
8000d56: 4770 bx lr
8000d58: 40023800 .word 0x40023800
08000d5c <SysTick_Handler>:
8000d5c: 4a06 ldr r2, [pc, #24] ; (8000d78 <SysTick_Handler+0x1c>)
8000d5e: 6813 ldr r3, [r2, #0]
8000d60: 33fa adds r3, #250 ; 0xfa
8000d62: 6013 str r3, [r2, #0]
8000d64: 4a05 ldr r2, [pc, #20] ; (8000d7c <SysTick_Handler+0x20>)
8000d66: 6813 ldr r3, [r2, #0]
8000d68: f503 3374 add.w r3, r3, #249856 ; 0x3d000
8000d6c: 3390 adds r3, #144 ; 0x90
8000d6e: 6013 str r3, [r2, #0]
8000d70: 4b03 ldr r3, [pc, #12] ; (8000d80 <SysTick_Handler+0x24>)
8000d72: 2201 movs r2, #1
8000d74: 701a strb r2, [r3, #0]
8000d76: 4770 bx lr
8000d78: 20000c98 .word 0x20000c98
8000d7c: 20000c94 .word 0x20000c94
8000d80: 20000c9c .word 0x20000c9c
08000d84 <_ZN4modm8platform12SysTickTimer6enableEmb>:
8000d84: 4b06 ldr r3, [pc, #24] ; (8000da0 <_ZN4modm8platform12SysTickTimer6enableEmb+0x1c>)
8000d86: 22f0 movs r2, #240 ; 0xf0
8000d88: f883 2023 strb.w r2, [r3, #35] ; 0x23
8000d8c: f5a3 634f sub.w r3, r3, #3312 ; 0xcf0
8000d90: 6058 str r0, [r3, #4]
8000d92: 6098 str r0, [r3, #8]
8000d94: b111 cbz r1, 8000d9c <_ZN4modm8platform12SysTickTimer6enableEmb+0x18>
8000d96: 2203 movs r2, #3
8000d98: 601a str r2, [r3, #0]
8000d9a: 4770 bx lr
8000d9c: 2207 movs r2, #7
8000d9e: e7fb b.n 8000d98 <_ZN4modm8platform12SysTickTimer6enableEmb+0x14>
8000da0: e000ed00 .word 0xe000ed00
08000da4 <modm_assert_report>:
8000da4: b5f8 push {r3, r4, r5, r6, r7, lr}
8000da6: 7a04 ldrb r4, [r0, #8]
8000da8: 4e11 ldr r6, [pc, #68] ; (8000df0 <modm_assert_report+0x4c>)
8000daa: 4f12 ldr r7, [pc, #72] ; (8000df4 <modm_assert_report+0x50>)
8000dac: 4605 mov r5, r0
8000dae: 42be cmp r6, r7
8000db0: d206 bcs.n 8000dc0 <modm_assert_report+0x1c>
8000db2: f856 3b04 ldr.w r3, [r6], #4
8000db6: 4628 mov r0, r5
8000db8: 4798 blx r3
8000dba: 4304 orrs r4, r0
8000dbc: b2e4 uxtb r4, r4
8000dbe: e7f6 b.n 8000dae <modm_assert_report+0xa>
8000dc0: f004 037f and.w r3, r4, #127 ; 0x7f
8000dc4: 2b01 cmp r3, #1
8000dc6: 722c strb r4, [r5, #8]
8000dc8: d001 beq.n 8000dce <modm_assert_report+0x2a>
8000dca: 0763 lsls r3, r4, #29
8000dcc: d50f bpl.n 8000dee <modm_assert_report+0x4a>
8000dce: 4628 mov r0, r5
8000dd0: f7ff fd6a bl 80008a8 <modm_abandon>
8000dd4: f3bf 8f4f dsb sy
8000dd8: 4907 ldr r1, [pc, #28] ; (8000df8 <modm_assert_report+0x54>)
8000dda: 4b08 ldr r3, [pc, #32] ; (8000dfc <modm_assert_report+0x58>)
8000ddc: 68ca ldr r2, [r1, #12]
8000dde: f402 62e0 and.w r2, r2, #1792 ; 0x700
8000de2: 4313 orrs r3, r2
8000de4: 60cb str r3, [r1, #12]
8000de6: f3bf 8f4f dsb sy
8000dea: bf00 nop
8000dec: e7fd b.n 8000dea <modm_assert_report+0x46>
8000dee: bdf8 pop {r3, r4, r5, r6, r7, pc}
8000df0: 0800132c .word 0x0800132c
8000df4: 0800132c .word 0x0800132c
8000df8: e000ed00 .word 0xe000ed00
8000dfc: 05fa0004 .word 0x05fa0004
08000e00 <_Z15modm_dwt_enablev>:
8000e00: 4a06 ldr r2, [pc, #24] ; (8000e1c <_Z15modm_dwt_enablev+0x1c>)
8000e02: 68d3 ldr r3, [r2, #12]
8000e04: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
8000e08: 60d3 str r3, [r2, #12]
8000e0a: 4b05 ldr r3, [pc, #20] ; (8000e20 <_Z15modm_dwt_enablev+0x20>)
8000e0c: 2200 movs r2, #0
8000e0e: 605a str r2, [r3, #4]
8000e10: 681a ldr r2, [r3, #0]
8000e12: f042 0201 orr.w r2, r2, #1
8000e16: 601a str r2, [r3, #0]
8000e18: 4770 bx lr
8000e1a: bf00 nop
8000e1c: e000edf0 .word 0xe000edf0
8000e20: e0001000 .word 0xe0001000
08000e24 <_ZN4modm8platform9HeapTable5beginEv>:
8000e24: 4800 ldr r0, [pc, #0] ; (8000e28 <_ZN4modm8platform9HeapTable5beginEv+0x4>)
8000e26: 4770 bx lr
8000e28: 08001404 .word 0x08001404
08000e2c <_ZN4modm8platform9HeapTable3endEv>:
8000e2c: 4800 ldr r0, [pc, #0] ; (8000e30 <_ZN4modm8platform9HeapTable3endEv+0x4>)
8000e2e: 4770 bx lr
8000e30: 08001410 .word 0x08001410
08000e34 <_ZNK4modm8platform9HeapTable8IteratordeEv>:
8000e34: b530 push {r4, r5, lr}
8000e36: 680a ldr r2, [r1, #0]
8000e38: 6851 ldr r1, [r2, #4]
8000e3a: 6814 ldr r4, [r2, #0]
8000e3c: 6892 ldr r2, [r2, #8]
8000e3e: 6081 str r1, [r0, #8]
8000e40: 1a55 subs r5, r2, r1
8000e42: e9c0 5200 strd r5, r2, [r0]
8000e46: 8184 strh r4, [r0, #12]
8000e48: bd30 pop {r4, r5, pc}
08000e4a <_ZN4modm8platform9HeapTable8IteratorppEv>:
8000e4a: 6802 ldr r2, [r0, #0]
8000e4c: 320c adds r2, #12
8000e4e: 6002 str r2, [r0, #0]
8000e50: 4770 bx lr
08000e52 <_ZNK4modm8platform9HeapTable8IteratorneERKS2_>:
8000e52: 6800 ldr r0, [r0, #0]
8000e54: 680b ldr r3, [r1, #0]
8000e56: 1ac0 subs r0, r0, r3
8000e58: bf18 it ne
8000e5a: 2001 movne r0, #1
8000e5c: 4770 bx lr
...
08000e60 <Reset_Handler>:
8000e60: 4802 ldr r0, [pc, #8] ; (8000e6c <Reset_Handler+0xc>)
8000e62: 4685 mov sp, r0
8000e64: f000 f886 bl 8000f74 <__modm_initialize_platform>
8000e68: f000 b812 b.w 8000e90 <__modm_startup>
8000e6c: 20000c00 .word 0x20000c00
08000e70 <table_copy>:
8000e70: b530 push {r4, r5, lr}
8000e72: 4288 cmp r0, r1
8000e74: d300 bcc.n 8000e78 <table_copy+0x8>
8000e76: bd30 pop {r4, r5, pc}
8000e78: e890 001c ldmia.w r0, {r2, r3, r4}
8000e7c: 429c cmp r4, r3
8000e7e: d801 bhi.n 8000e84 <table_copy+0x14>
8000e80: 300c adds r0, #12
8000e82: e7f6 b.n 8000e72 <table_copy+0x2>
8000e84: f852 5b04 ldr.w r5, [r2], #4
8000e88: f843 5b04 str.w r5, [r3], #4
8000e8c: e7f6 b.n 8000e7c <table_copy+0xc>
...
08000e90 <__modm_startup>:
8000e90: b538 push {r3, r4, r5, lr}
8000e92: 4929 ldr r1, [pc, #164] ; (8000f38 <__modm_startup+0xa8>)
8000e94: 4829 ldr r0, [pc, #164] ; (8000f3c <__modm_startup+0xac>)
8000e96: f7ff ffeb bl 8000e70 <table_copy>
8000e9a: 4b29 ldr r3, [pc, #164] ; (8000f40 <__modm_startup+0xb0>)
8000e9c: 4929 ldr r1, [pc, #164] ; (8000f44 <__modm_startup+0xb4>)
8000e9e: 2000 movs r0, #0
8000ea0: 428b cmp r3, r1
8000ea2: d32e bcc.n 8000f02 <__modm_startup+0x72>
8000ea4: 4b28 ldr r3, [pc, #160] ; (8000f48 <__modm_startup+0xb8>)
8000ea6: 4c29 ldr r4, [pc, #164] ; (8000f4c <__modm_startup+0xbc>)
8000ea8: f8d3 2088 ldr.w r2, [r3, #136] ; 0x88
8000eac: 4d28 ldr r5, [pc, #160] ; (8000f50 <__modm_startup+0xc0>)
8000eae: f442 0270 orr.w r2, r2, #15728640 ; 0xf00000
8000eb2: f8c3 2088 str.w r2, [r3, #136] ; 0x88
8000eb6: 4a27 ldr r2, [pc, #156] ; (8000f54 <__modm_startup+0xc4>)
8000eb8: 609a str r2, [r3, #8]
8000eba: 695a ldr r2, [r3, #20]
8000ebc: f042 0210 orr.w r2, r2, #16
8000ec0: 615a str r2, [r3, #20]
8000ec2: 42ac cmp r4, r5
8000ec4: d326 bcc.n 8000f14 <__modm_startup+0x84>
8000ec6: 4924 ldr r1, [pc, #144] ; (8000f58 <__modm_startup+0xc8>)
8000ec8: 4824 ldr r0, [pc, #144] ; (8000f5c <__modm_startup+0xcc>)
8000eca: f7ff ffd1 bl 8000e70 <table_copy>
8000ece: 4b24 ldr r3, [pc, #144] ; (8000f60 <__modm_startup+0xd0>)
8000ed0: 4924 ldr r1, [pc, #144] ; (8000f64 <__modm_startup+0xd4>)
8000ed2: 2000 movs r0, #0
8000ed4: 428b cmp r3, r1
8000ed6: d321 bcc.n 8000f1c <__modm_startup+0x8c>
8000ed8: f000 f898 bl 800100c <__modm_initialize_memory>
8000edc: 4c22 ldr r4, [pc, #136] ; (8000f68 <__modm_startup+0xd8>)
8000ede: 4d23 ldr r5, [pc, #140] ; (8000f6c <__modm_startup+0xdc>)
8000ee0: 42ac cmp r4, r5
8000ee2: d324 bcc.n 8000f2e <__modm_startup+0x9e>
8000ee4: f7ff fa78 bl 80003d8 <main>
8000ee8: f3bf 8f4f dsb sy
8000eec: 4916 ldr r1, [pc, #88] ; (8000f48 <__modm_startup+0xb8>)
8000eee: 4b20 ldr r3, [pc, #128] ; (8000f70 <__modm_startup+0xe0>)
8000ef0: 68ca ldr r2, [r1, #12]
8000ef2: f402 62e0 and.w r2, r2, #1792 ; 0x700
8000ef6: 4313 orrs r3, r2
8000ef8: 60cb str r3, [r1, #12]
8000efa: f3bf 8f4f dsb sy
8000efe: bf00 nop
8000f00: e7fd b.n 8000efe <__modm_startup+0x6e>
8000f02: e9d3 2400 ldrd r2, r4, [r3]
8000f06: 42a2 cmp r2, r4
8000f08: d301 bcc.n 8000f0e <__modm_startup+0x7e>
8000f0a: 3308 adds r3, #8
8000f0c: e7c8 b.n 8000ea0 <__modm_startup+0x10>
8000f0e: f842 0b04 str.w r0, [r2], #4
8000f12: e7f8 b.n 8000f06 <__modm_startup+0x76>
8000f14: f854 3b04 ldr.w r3, [r4], #4
8000f18: 4798 blx r3
8000f1a: e7d2 b.n 8000ec2 <__modm_startup+0x32>
8000f1c: e9d3 2400 ldrd r2, r4, [r3]
8000f20: 42a2 cmp r2, r4
8000f22: d301 bcc.n 8000f28 <__modm_startup+0x98>
8000f24: 3308 adds r3, #8
8000f26: e7d5 b.n 8000ed4 <__modm_startup+0x44>
8000f28: f842 0b04 str.w r0, [r2], #4
8000f2c: e7f8 b.n 8000f20 <__modm_startup+0x90>
8000f2e: f854 3b04 ldr.w r3, [r4], #4
8000f32: 4798 blx r3
8000f34: e7d4 b.n 8000ee0 <__modm_startup+0x50>
8000f36: bf00 nop
8000f38: 08001404 .word 0x08001404
8000f3c: 080013ec .word 0x080013ec
8000f40: 080013e4 .word 0x080013e4
8000f44: 080013ec .word 0x080013ec
8000f48: e000ed00 .word 0xe000ed00
8000f4c: 08001324 .word 0x08001324
8000f50: 0800132c .word 0x0800132c
8000f54: 08000000 .word 0x08000000
8000f58: 08001404 .word 0x08001404
8000f5c: 08001404 .word 0x08001404
8000f60: 08001404 .word 0x08001404
8000f64: 08001404 .word 0x08001404
8000f68: 0800131c .word 0x0800131c
8000f6c: 08001324 .word 0x08001324
8000f70: 05fa0004 .word 0x05fa0004
08000f74 <__modm_initialize_platform>:
8000f74: 4a02 ldr r2, [pc, #8] ; (8000f80 <__modm_initialize_platform+0xc>)
8000f76: 6c53 ldr r3, [r2, #68] ; 0x44
8000f78: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8000f7c: 6453 str r3, [r2, #68] ; 0x44
8000f7e: 4770 bx lr
8000f80: 40023800 .word 0x40023800
08000f84 <Undefined_Handler>:
8000f84: b51f push {r0, r1, r2, r3, r4, lr}
8000f86: f3ef 8205 mrs r2, IPSR
8000f8a: 3a10 subs r2, #16
8000f8c: b253 sxtb r3, r2
8000f8e: 2b00 cmp r3, #0
8000f90: db1b blt.n 8000fca <Undefined_Handler+0x46>
8000f92: 4811 ldr r0, [pc, #68] ; (8000fd8 <Undefined_Handler+0x54>)
8000f94: 18c1 adds r1, r0, r3
8000f96: 24f0 movs r4, #240 ; 0xf0
8000f98: 095b lsrs r3, r3, #5
8000f9a: f881 4300 strb.w r4, [r1, #768] ; 0x300
8000f9e: 3320 adds r3, #32
8000fa0: f002 041f and.w r4, r2, #31
8000fa4: 2101 movs r1, #1
8000fa6: 40a1 lsls r1, r4
8000fa8: f840 1023 str.w r1, [r0, r3, lsl #2]
8000fac: f3bf 8f4f dsb sy
8000fb0: f3bf 8f6f isb sy
8000fb4: 4b09 ldr r3, [pc, #36] ; (8000fdc <Undefined_Handler+0x58>)
8000fb6: a801 add r0, sp, #4
8000fb8: e9cd 3201 strd r3, r2, [sp, #4]
8000fbc: 2301 movs r3, #1
8000fbe: f88d 300c strb.w r3, [sp, #12]
8000fc2: f7ff feef bl 8000da4 <modm_assert_report>
8000fc6: b004 add sp, #16
8000fc8: bd10 pop {r4, pc}
8000fca: 4b05 ldr r3, [pc, #20] ; (8000fe0 <Undefined_Handler+0x5c>)
8000fcc: f002 010f and.w r1, r2, #15
8000fd0: 440b add r3, r1
8000fd2: 21f0 movs r1, #240 ; 0xf0
8000fd4: 7619 strb r1, [r3, #24]
8000fd6: e7ed b.n 8000fb4 <Undefined_Handler+0x30>
8000fd8: e000e100 .word 0xe000e100
8000fdc: 08001310 .word 0x08001310
8000fe0: e000ecfc .word 0xe000ecfc
08000fe4 <_Z16modm_gpio_enablev>:
8000fe4: 4b08 ldr r3, [pc, #32] ; (8001008 <_Z16modm_gpio_enablev+0x24>)
8000fe6: 2201 movs r2, #1
8000fe8: 621a str r2, [r3, #32]
8000fea: f503 3380 add.w r3, r3, #65536 ; 0x10000
8000fee: 6b1a ldr r2, [r3, #48] ; 0x30
8000ff0: f042 028f orr.w r2, r2, #143 ; 0x8f
8000ff4: 631a str r2, [r3, #48] ; 0x30
8000ff6: 691a ldr r2, [r3, #16]
8000ff8: f042 028f orr.w r2, r2, #143 ; 0x8f
8000ffc: 611a str r2, [r3, #16]
8000ffe: 691a ldr r2, [r3, #16]
8001000: f022 028f bic.w r2, r2, #143 ; 0x8f
8001004: 611a str r2, [r3, #16]
8001006: 4770 bx lr
8001008: 40013800 .word 0x40013800
0800100c <__modm_initialize_memory>:
800100c: b570 push {r4, r5, r6, lr}
800100e: b088 sub sp, #32
8001010: a801 add r0, sp, #4
8001012: f7ff ff07 bl 8000e24 <_ZN4modm8platform9HeapTable5beginEv>
8001016: 9002 str r0, [sp, #8]
8001018: a801 add r0, sp, #4
800101a: f7ff ff07 bl 8000e2c <_ZN4modm8platform9HeapTable3endEv>
800101e: 4c1a ldr r4, [pc, #104] ; (8001088 <__modm_initialize_memory+0x7c>)
8001020: 9003 str r0, [sp, #12]
8001022: 2500 movs r5, #0
8001024: f104 0648 add.w r6, r4, #72 ; 0x48
8001028: a903 add r1, sp, #12
800102a: a802 add r0, sp, #8
800102c: f7ff ff11 bl 8000e52 <_ZNK4modm8platform9HeapTable8IteratorneERKS2_>
8001030: b340 cbz r0, 8001084 <__modm_initialize_memory+0x78>
8001032: a902 add r1, sp, #8
8001034: a804 add r0, sp, #16
8001036: f7ff fefd bl 8000e34 <_ZNK4modm8platform9HeapTable8IteratordeEv>
800103a: 42b4 cmp r4, r6
800103c: d222 bcs.n 8001084 <__modm_initialize_memory+0x78>
800103e: f8bd 301c ldrh.w r3, [sp, #28]
8001042: 9806 ldr r0, [sp, #24]
8001044: 9a04 ldr r2, [sp, #16]
8001046: 42ab cmp r3, r5
8001048: d103 bne.n 8001052 <__modm_initialize_memory+0x46>
800104a: f854 1c04 ldr.w r1, [r4, #-4]
800104e: 4281 cmp r1, r0
8001050: d00e beq.n 8001070 <__modm_initialize_memory+0x64>
8001052: 4611 mov r1, r2
8001054: f7ff fbae bl 80007b4 <tlsf_create_with_pool>
8001058: b130 cbz r0, 8001068 <__modm_initialize_memory+0x5c>
800105a: f8bd 501c ldrh.w r5, [sp, #28]
800105e: 9b05 ldr r3, [sp, #20]
8001060: 8025 strh r5, [r4, #0]
8001062: 6060 str r0, [r4, #4]
8001064: 60a3 str r3, [r4, #8]
8001066: 340c adds r4, #12
8001068: a802 add r0, sp, #8
800106a: f7ff feee bl 8000e4a <_ZN4modm8platform9HeapTable8IteratorppEv>
800106e: e7db b.n 8001028 <__modm_initialize_memory+0x1c>
8001070: f854 0c08 ldr.w r0, [r4, #-8]
8001074: f7ff fb60 bl 8000738 <tlsf_add_pool>
8001078: 2800 cmp r0, #0
800107a: d0f5 beq.n 8001068 <__modm_initialize_memory+0x5c>
800107c: 9b05 ldr r3, [sp, #20]
800107e: f844 3c04 str.w r3, [r4, #-4]
8001082: e7f1 b.n 8001068 <__modm_initialize_memory+0x5c>
8001084: b008 add sp, #32
8001086: bd70 pop {r4, r5, r6, pc}
8001088: 20000ca0 .word 0x20000ca0
0800108c <malloc_traits>:
800108c: b5f8 push {r3, r4, r5, r6, r7, lr}
800108e: 4607 mov r7, r0
8001090: 460c mov r4, r1
8001092: 4e0f ldr r6, [pc, #60] ; (80010d0 <malloc_traits+0x44>)
8001094: 2506 movs r5, #6
8001096: 8833 ldrh r3, [r6, #0]
8001098: ea34 0303 bics.w r3, r4, r3
800109c: d009 beq.n 80010b2 <malloc_traits+0x26>
800109e: 3d01 subs r5, #1
80010a0: f106 060c add.w r6, r6, #12
80010a4: d1f7 bne.n 8001096 <malloc_traits+0xa>
80010a6: f414 4f20 tst.w r4, #40960 ; 0xa000
80010aa: d009 beq.n 80010c0 <malloc_traits+0x34>
80010ac: f424 4420 bic.w r4, r4, #40960 ; 0xa000
80010b0: e7ef b.n 8001092 <malloc_traits+0x6>
80010b2: 6870 ldr r0, [r6, #4]
80010b4: 4639 mov r1, r7
80010b6: f7ff fb8b bl 80007d0 <tlsf_malloc>
80010ba: 2800 cmp r0, #0
80010bc: d0ef beq.n 800109e <malloc_traits+0x12>
80010be: bdf8 pop {r3, r4, r5, r6, r7, pc}
80010c0: 07e3 lsls r3, r4, #31
80010c2: d402 bmi.n 80010ca <malloc_traits+0x3e>
80010c4: f044 0401 orr.w r4, r4, #1
80010c8: e7e3 b.n 8001092 <malloc_traits+0x6>
80010ca: 4628 mov r0, r5
80010cc: e7f7 b.n 80010be <malloc_traits+0x32>
80010ce: bf00 nop
80010d0: 20000ca0 .word 0x20000ca0
080010d4 <__wrap__malloc_r>:
80010d4: 4608 mov r0, r1
80010d6: 2109 movs r1, #9
80010d8: f7ff bfd8 b.w 800108c <malloc_traits>
080010dc <__wrap__free_r>:
80010dc: b410 push {r4}
80010de: b159 cbz r1, 80010f8 <__wrap__free_r+0x1c>
80010e0: 4b0a ldr r3, [pc, #40] ; (800110c <__wrap__free_r+0x30>)
80010e2: 2206 movs r2, #6
80010e4: 6858 ldr r0, [r3, #4]
80010e6: 4281 cmp r1, r0
80010e8: d902 bls.n 80010f0 <__wrap__free_r+0x14>
80010ea: 689c ldr r4, [r3, #8]
80010ec: 42a1 cmp r1, r4
80010ee: d306 bcc.n 80010fe <__wrap__free_r+0x22>
80010f0: 3a01 subs r2, #1
80010f2: f103 030c add.w r3, r3, #12
80010f6: d1f5 bne.n 80010e4 <__wrap__free_r+0x8>
80010f8: f85d 4b04 ldr.w r4, [sp], #4
80010fc: 4770 bx lr
80010fe: 2800 cmp r0, #0
8001100: d0fa beq.n 80010f8 <__wrap__free_r+0x1c>
8001102: f85d 4b04 ldr.w r4, [sp], #4
8001106: f7ff bb7c b.w 8000802 <tlsf_free>
800110a: bf00 nop
800110c: 20000ca0 .word 0x20000ca0
08001110 <_ZN4modm8platform6Usart218initializeBufferedEm>:
8001110: 4b06 ldr r3, [pc, #24] ; (800112c <_ZN4modm8platform6Usart218initializeBufferedEm+0x1c>)
8001112: 0100 lsls r0, r0, #4
8001114: b2c0 uxtb r0, r0
8001116: f883 0326 strb.w r0, [r3, #806] ; 0x326
800111a: 2240 movs r2, #64 ; 0x40
800111c: 605a str r2, [r3, #4]
800111e: 4a04 ldr r2, [pc, #16] ; (8001130 <_ZN4modm8platform6Usart218initializeBufferedEm+0x20>)
8001120: 68d3 ldr r3, [r2, #12]
8001122: f043 0320 orr.w r3, r3, #32
8001126: 60d3 str r3, [r2, #12]
8001128: 4770 bx lr
800112a: bf00 nop
800112c: e000e100 .word 0xe000e100
8001130: 40004400 .word 0x40004400
08001134 <_ZN4modm8platform6Usart25writeEh>:
8001134: 4b15 ldr r3, [pc, #84] ; (800118c <_ZN4modm8platform6Usart25writeEh+0x58>)
8001136: 8819 ldrh r1, [r3, #0]
8001138: 885a ldrh r2, [r3, #2]
800113a: b289 uxth r1, r1
800113c: b292 uxth r2, r2
800113e: 4291 cmp r1, r2
8001140: d106 bne.n 8001150 <_ZN4modm8platform6Usart25writeEh+0x1c>
8001142: 4a13 ldr r2, [pc, #76] ; (8001190 <_ZN4modm8platform6Usart25writeEh+0x5c>)
8001144: 6811 ldr r1, [r2, #0]
8001146: 0609 lsls r1, r1, #24
8001148: d502 bpl.n 8001150 <_ZN4modm8platform6Usart25writeEh+0x1c>
800114a: 6050 str r0, [r2, #4]
800114c: 2001 movs r0, #1
800114e: 4770 bx lr
8001150: 881a ldrh r2, [r3, #0]
8001152: 8859 ldrh r1, [r3, #2]
8001154: 3201 adds r2, #1
8001156: b292 uxth r2, r2
8001158: f5b2 6f00 cmp.w r2, #2048 ; 0x800
800115c: bf88 it hi
800115e: 2200 movhi r2, #0
8001160: b289 uxth r1, r1
8001162: 4291 cmp r1, r2
8001164: d00f beq.n 8001186 <_ZN4modm8platform6Usart25writeEh+0x52>
8001166: 8819 ldrh r1, [r3, #0]
8001168: fa13 f181 uxtah r1, r3, r1
800116c: 7108 strb r0, [r1, #4]
800116e: 801a strh r2, [r3, #0]
8001170: f3ef 8110 mrs r1, PRIMASK
8001174: b672 cpsid i
8001176: 4a06 ldr r2, [pc, #24] ; (8001190 <_ZN4modm8platform6Usart25writeEh+0x5c>)
8001178: 68d3 ldr r3, [r2, #12]
800117a: f043 0380 orr.w r3, r3, #128 ; 0x80
800117e: 60d3 str r3, [r2, #12]
8001180: f381 8810 msr PRIMASK, r1
8001184: e7e2 b.n 800114c <_ZN4modm8platform6Usart25writeEh+0x18>
8001186: 2000 movs r0, #0
8001188: 4770 bx lr
800118a: bf00 nop
800118c: 20000cfc .word 0x20000cfc
8001190: 40004400 .word 0x40004400
08001194 <_ZN4modm8platform6Usart215isWriteFinishedEv>:
8001194: 4b06 ldr r3, [pc, #24] ; (80011b0 <_ZN4modm8platform6Usart215isWriteFinishedEv+0x1c>)
8001196: 881a ldrh r2, [r3, #0]
8001198: 885b ldrh r3, [r3, #2]
800119a: b292 uxth r2, r2
800119c: b29b uxth r3, r3
800119e: 429a cmp r2, r3
80011a0: bf03 ittte eq
80011a2: 4b04 ldreq r3, [pc, #16] ; (80011b4 <_ZN4modm8platform6Usart215isWriteFinishedEv+0x20>)
80011a4: 6818 ldreq r0, [r3, #0]
80011a6: f3c0 10c0 ubfxeq r0, r0, #7, #1
80011aa: 2000 movne r0, #0
80011ac: 4770 bx lr
80011ae: bf00 nop
80011b0: 20000cfc .word 0x20000cfc
80011b4: 40004400 .word 0x40004400
080011b8 <_ZN4modm8platform6Usart216flushWriteBufferEv>:
80011b8: b508 push {r3, lr}
80011ba: f7ff ffeb bl 8001194 <_ZN4modm8platform6Usart215isWriteFinishedEv>
80011be: 2800 cmp r0, #0
80011c0: d0fb beq.n 80011ba <_ZN4modm8platform6Usart216flushWriteBufferEv+0x2>
80011c2: bd08 pop {r3, pc}
080011c4 <_ZN4modm8platform6Usart24readERh>:
80011c4: 4a09 ldr r2, [pc, #36] ; (80011ec <_ZN4modm8platform6Usart24readERh+0x28>)
80011c6: 7811 ldrb r1, [r2, #0]
80011c8: 7853 ldrb r3, [r2, #1]
80011ca: 4299 cmp r1, r3
80011cc: d00c beq.n 80011e8 <_ZN4modm8platform6Usart24readERh+0x24>
80011ce: 7853 ldrb r3, [r2, #1]
80011d0: 4413 add r3, r2
80011d2: 789b ldrb r3, [r3, #2]
80011d4: 7003 strb r3, [r0, #0]
80011d6: 7853 ldrb r3, [r2, #1]
80011d8: 3301 adds r3, #1
80011da: b2db uxtb r3, r3
80011dc: 2b11 cmp r3, #17
80011de: bf28 it cs
80011e0: 2300 movcs r3, #0
80011e2: 7053 strb r3, [r2, #1]
80011e4: 2001 movs r0, #1
80011e6: 4770 bx lr
80011e8: 2000 movs r0, #0
80011ea: 4770 bx lr
80011ec: 20000ce8 .word 0x20000ce8
080011f0 <USART2_IRQHandler>:
80011f0: 4b19 ldr r3, [pc, #100] ; (8001258 <USART2_IRQHandler+0x68>)
80011f2: 681a ldr r2, [r3, #0]
80011f4: 0691 lsls r1, r2, #26
80011f6: d50e bpl.n 8001216 <USART2_IRQHandler+0x26>
80011f8: 4a18 ldr r2, [pc, #96] ; (800125c <USART2_IRQHandler+0x6c>)
80011fa: 6858 ldr r0, [r3, #4]
80011fc: 7813 ldrb r3, [r2, #0]
80011fe: 7851 ldrb r1, [r2, #1]
8001200: 3301 adds r3, #1
8001202: b2db uxtb r3, r3
8001204: 2b11 cmp r3, #17
8001206: bf28 it cs
8001208: 2300 movcs r3, #0
800120a: 4299 cmp r1, r3
800120c: bf1f itttt ne
800120e: 7811 ldrbne r1, [r2, #0]
8001210: 7013 strbne r3, [r2, #0]
8001212: 1889 addne r1, r1, r2
8001214: 7088 strbne r0, [r1, #2]
8001216: 4b10 ldr r3, [pc, #64] ; (8001258 <USART2_IRQHandler+0x68>)
8001218: 681a ldr r2, [r3, #0]
800121a: 0612 lsls r2, r2, #24
800121c: d50a bpl.n 8001234 <USART2_IRQHandler+0x44>
800121e: 4a10 ldr r2, [pc, #64] ; (8001260 <USART2_IRQHandler+0x70>)
8001220: 8810 ldrh r0, [r2, #0]
8001222: 8851 ldrh r1, [r2, #2]
8001224: b280 uxth r0, r0
8001226: b289 uxth r1, r1
8001228: 4288 cmp r0, r1
800122a: d107 bne.n 800123c <USART2_IRQHandler+0x4c>
800122c: 68da ldr r2, [r3, #12]
800122e: f022 0280 bic.w r2, r2, #128 ; 0x80
8001232: 60da str r2, [r3, #12]
8001234: 4b08 ldr r3, [pc, #32] ; (8001258 <USART2_IRQHandler+0x68>)
8001236: 681a ldr r2, [r3, #0]
8001238: 685b ldr r3, [r3, #4]
800123a: 4770 bx lr
800123c: 8851 ldrh r1, [r2, #2]
800123e: fa12 f181 uxtah r1, r2, r1
8001242: 7909 ldrb r1, [r1, #4]
8001244: 6059 str r1, [r3, #4]
8001246: 8853 ldrh r3, [r2, #2]
8001248: 3301 adds r3, #1
800124a: b29b uxth r3, r3
800124c: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8001250: bf88 it hi
8001252: 2300 movhi r3, #0
8001254: 8053 strh r3, [r2, #2]
8001256: e7ed b.n 8001234 <USART2_IRQHandler+0x44>
8001258: 40004400 .word 0x40004400
800125c: 20000ce8 .word 0x20000ce8
8001260: 20000cfc .word 0x20000cfc
08001264 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm>:
8001264: 4a03 ldr r2, [pc, #12] ; (8001274 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm+0x10>)
8001266: 2300 movs r3, #0
8001268: 7013 strb r3, [r2, #0]
800126a: 7053 strb r3, [r2, #1]
800126c: 4a02 ldr r2, [pc, #8] ; (8001278 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm+0x14>)
800126e: 8013 strh r3, [r2, #0]
8001270: 8053 strh r3, [r2, #2]
8001272: 4770 bx lr
8001274: 20000ce8 .word 0x20000ce8
8001278: 20000cfc .word 0x20000cfc
0800127c <malloc>:
800127c: 4b02 ldr r3, [pc, #8] ; (8001288 <malloc+0xc>)
800127e: 4601 mov r1, r0
8001280: 6818 ldr r0, [r3, #0]
8001282: f7ff bf27 b.w 80010d4 <__wrap__malloc_r>
8001286: bf00 nop
8001288: 20000c08 .word 0x20000c08
0800128c <free>:
800128c: 4b02 ldr r3, [pc, #8] ; (8001298 <free+0xc>)
800128e: 4601 mov r1, r0
8001290: 6818 ldr r0, [r3, #0]
8001292: f7ff bf23 b.w 80010dc <__wrap__free_r>
8001296: bf00 nop
8001298: 20000c08 .word 0x20000c08
Disassembly of section .fastcode:
08001350 <_ZN4modm8delay_usEm>:
8001350: b148 cbz r0, 8001366 <_ZN4modm8delay_usEm+0x16>
8001352: 4a05 ldr r2, [pc, #20] ; (8001368 <_ZN4modm8delay_usEm+0x18>)
8001354: 4b05 ldr r3, [pc, #20] ; (800136c <_ZN4modm8delay_usEm+0x1c>)
8001356: 8812 ldrh r2, [r2, #0]
8001358: 6859 ldr r1, [r3, #4]
800135a: 4350 muls r0, r2
800135c: 3819 subs r0, #25
800135e: 685a ldr r2, [r3, #4]
8001360: 1a52 subs r2, r2, r1
8001362: 4282 cmp r2, r0
8001364: dbfb blt.n 800135e <_ZN4modm8delay_usEm+0xe>
8001366: 4770 bx lr
8001368: 20001506 .word 0x20001506
800136c: e0001000 .word 0xe0001000
arm-none-eabi-objdump -d blink.elf (ARM Toolchain; WITHOUT heap module)
arm-none-eabi-objdump -d blink.elf (ARM Toolchain; WITHOUT heap module)
/home/user/modm2/build/nucleo_f411re/blink/release/blink.elf: file format elf32-littlearm
Disassembly of section .text:
080001a0 <_ZN4modm8IOStream4endlEv>:
80001a0: 2300 movs r3, #0
80001a2: b510 push {r4, lr}
80001a4: 4604 mov r4, r0
80001a6: 6043 str r3, [r0, #4]
80001a8: 6800 ldr r0, [r0, #0]
80001aa: 6803 ldr r3, [r0, #0]
80001ac: 210a movs r1, #10
80001ae: 689b ldr r3, [r3, #8]
80001b0: 4798 blx r3
80001b2: 4620 mov r0, r4
80001b4: bd10 pop {r4, pc}
080001b6 <_ZN4modm8IOStreamlsEPKc>:
80001b6: b510 push {r4, lr}
80001b8: 4604 mov r4, r0
80001ba: 6800 ldr r0, [r0, #0]
80001bc: 6803 ldr r3, [r0, #0]
80001be: 68db ldr r3, [r3, #12]
80001c0: 4798 blx r3
80001c2: 4620 mov r0, r4
80001c4: bd10 pop {r4, pc}
...
080001c8 <_ZN5Board11SystemClock6enableEv>:
80001c8: b507 push {r0, r1, r2, lr}
80001ca: f44f 6000 mov.w r0, #2048 ; 0x800
80001ce: f000 fbab bl 8000928 <_ZN4modm8platform3Rcc19enableInternalClockEm>
80001d2: 4b1d ldr r3, [pc, #116] ; (8000248 <_ZN5Board11SystemClock6enableEv+0x80>)
80001d4: 6818 ldr r0, [r3, #0]
80001d6: 9000 str r0, [sp, #0]
80001d8: 889b ldrh r3, [r3, #4]
80001da: f8ad 3004 strh.w r3, [sp, #4]
80001de: f44f 6200 mov.w r2, #2048 ; 0x800
80001e2: 4669 mov r1, sp
80001e4: 2000 movs r0, #0
80001e6: f000 fbb3 bl 8000950 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm>
80001ea: 4a18 ldr r2, [pc, #96] ; (800024c <_ZN5Board11SystemClock6enableEv+0x84>)
80001ec: 6813 ldr r3, [r2, #0]
80001ee: f023 030f bic.w r3, r3, #15
80001f2: f443 63e0 orr.w r3, r3, #1792 ; 0x700
80001f6: f043 0303 orr.w r3, r3, #3
80001fa: 6013 str r3, [r2, #0]
80001fc: f3bf 8f4f dsb sy
8000200: f3bf 8f6f isb sy
8000204: f44f 6100 mov.w r1, #2048 ; 0x800
8000208: 2002 movs r0, #2
800020a: f000 fbd1 bl 80009b0 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm>
800020e: 4b10 ldr r3, [pc, #64] ; (8000250 <_ZN5Board11SystemClock6enableEv+0x88>)
8000210: 689a ldr r2, [r3, #8]
8000212: f022 02f0 bic.w r2, r2, #240 ; 0xf0
8000216: 609a str r2, [r3, #8]
8000218: 689a ldr r2, [r3, #8]
800021a: f422 52e0 bic.w r2, r2, #7168 ; 0x1c00
800021e: f442 5280 orr.w r2, r2, #4096 ; 0x1000
8000222: 609a str r2, [r3, #8]
8000224: 689a ldr r2, [r3, #8]
8000226: f422 4260 bic.w r2, r2, #57344 ; 0xe000
800022a: 609a str r2, [r3, #8]
800022c: 4b09 ldr r3, [pc, #36] ; (8000254 <_ZN5Board11SystemClock6enableEv+0x8c>)
800022e: 2260 movs r2, #96 ; 0x60
8000230: 801a strh r2, [r3, #0]
8000232: 4b09 ldr r3, [pc, #36] ; (8000258 <_ZN5Board11SystemClock6enableEv+0x90>)
8000234: 4a09 ldr r2, [pc, #36] ; (800025c <_ZN5Board11SystemClock6enableEv+0x94>)
8000236: 601a str r2, [r3, #0]
8000238: 4b09 ldr r3, [pc, #36] ; (8000260 <_ZN5Board11SystemClock6enableEv+0x98>)
800023a: 221f movs r2, #31
800023c: 2001 movs r0, #1
800023e: 801a strh r2, [r3, #0]
8000240: b003 add sp, #12
8000242: f85d fb04 ldr.w pc, [sp], #4
8000246: bf00 nop
8000248: 08000eb4 .word 0x08000eb4
800024c: 40023c00 .word 0x40023c00
8000250: 40023800 .word 0x40023800
8000254: 200014ca .word 0x200014ca
8000258: 200014cc .word 0x200014cc
800025c: 05b8d800 .word 0x05b8d800
8000260: 200014c8 .word 0x200014c8
08000264 <_ZN5Board10initializeEv>:
8000264: b510 push {r4, lr}
8000266: f7ff ffaf bl 80001c8 <_ZN5Board11SystemClock6enableEv>
800026a: 4b52 ldr r3, [pc, #328] ; (80003b4 <_ZN5Board10initializeEv+0x150>)
800026c: 4a52 ldr r2, [pc, #328] ; (80003b8 <_ZN5Board10initializeEv+0x154>)
800026e: 601a str r2, [r3, #0]
8000270: 4b52 ldr r3, [pc, #328] ; (80003bc <_ZN5Board10initializeEv+0x158>)
8000272: 4a53 ldr r2, [pc, #332] ; (80003c0 <_ZN5Board10initializeEv+0x15c>)
8000274: 4853 ldr r0, [pc, #332] ; (80003c4 <_ZN5Board10initializeEv+0x160>)
8000276: 601a str r2, [r3, #0]
8000278: 2101 movs r1, #1
800027a: f000 fbc1 bl 8000a00 <_ZN4modm8platform12SysTickTimer6enableEmb>
800027e: 4b52 ldr r3, [pc, #328] ; (80003c8 <_ZN5Board10initializeEv+0x164>)
8000280: 689a ldr r2, [r3, #8]
8000282: f022 0230 bic.w r2, r2, #48 ; 0x30
8000286: f042 0220 orr.w r2, r2, #32
800028a: 609a str r2, [r3, #8]
800028c: 685a ldr r2, [r3, #4]
800028e: f022 0204 bic.w r2, r2, #4
8000292: 605a str r2, [r3, #4]
8000294: 681a ldr r2, [r3, #0]
8000296: f022 0230 bic.w r2, r2, #48 ; 0x30
800029a: f042 0210 orr.w r2, r2, #16
800029e: 601a str r2, [r3, #0]
80002a0: 68da ldr r2, [r3, #12]
80002a2: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002a6: f042 0240 orr.w r2, r2, #64 ; 0x40
80002aa: 60da str r2, [r3, #12]
80002ac: 681a ldr r2, [r3, #0]
80002ae: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002b2: 601a str r2, [r3, #0]
80002b4: 685a ldr r2, [r3, #4]
80002b6: f022 0208 bic.w r2, r2, #8
80002ba: 605a str r2, [r3, #4]
80002bc: 689a ldr r2, [r3, #8]
80002be: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002c2: 609a str r2, [r3, #8]
80002c4: 6a1a ldr r2, [r3, #32]
80002c6: f422 6270 bic.w r2, r2, #3840 ; 0xf00
80002ca: f442 62e0 orr.w r2, r2, #1792 ; 0x700
80002ce: 621a str r2, [r3, #32]
80002d0: 681a ldr r2, [r3, #0]
80002d2: f022 0230 bic.w r2, r2, #48 ; 0x30
80002d6: f042 0220 orr.w r2, r2, #32
80002da: 601a str r2, [r3, #0]
80002dc: 6a1a ldr r2, [r3, #32]
80002de: f422 4270 bic.w r2, r2, #61440 ; 0xf000
80002e2: f442 42e0 orr.w r2, r2, #28672 ; 0x7000
80002e6: 621a str r2, [r3, #32]
80002e8: 681a ldr r2, [r3, #0]
80002ea: f022 02c0 bic.w r2, r2, #192 ; 0xc0
80002ee: f042 0280 orr.w r2, r2, #128 ; 0x80
80002f2: 601a str r2, [r3, #0]
80002f4: f3bf 8f4f dsb sy
80002f8: f503 5360 add.w r3, r3, #14336 ; 0x3800
80002fc: 6c1a ldr r2, [r3, #64] ; 0x40
80002fe: 0392 lsls r2, r2, #14
8000300: d40f bmi.n 8000322 <_ZN5Board10initializeEv+0xbe>
8000302: 6c1a ldr r2, [r3, #64] ; 0x40
8000304: f442 3200 orr.w r2, r2, #131072 ; 0x20000
8000308: 641a str r2, [r3, #64] ; 0x40
800030a: f3bf 8f4f dsb sy
800030e: 6a1a ldr r2, [r3, #32]
8000310: f442 3200 orr.w r2, r2, #131072 ; 0x20000
8000314: 621a str r2, [r3, #32]
8000316: f3bf 8f4f dsb sy
800031a: 6a1a ldr r2, [r3, #32]
800031c: f422 3200 bic.w r2, r2, #131072 ; 0x20000
8000320: 621a str r2, [r3, #32]
8000322: f3bf 8f4f dsb sy
8000326: 4c29 ldr r4, [pc, #164] ; (80003cc <_ZN5Board10initializeEv+0x168>)
8000328: 68e3 ldr r3, [r4, #12]
800032a: f443 5300 orr.w r3, r3, #8192 ; 0x2000
800032e: 60e3 str r3, [r4, #12]
8000330: 68e3 ldr r3, [r4, #12]
8000332: f423 5300 bic.w r3, r3, #8192 ; 0x2000
8000336: 60e3 str r3, [r4, #12]
8000338: f240 13a1 movw r3, #417 ; 0x1a1
800033c: 60a3 str r3, [r4, #8]
800033e: 68e3 ldr r3, [r4, #12]
8000340: f423 53b0 bic.w r3, r3, #5632 ; 0x1600
8000344: 60e3 str r3, [r4, #12]
8000346: 68e3 ldr r3, [r4, #12]
8000348: f423 4300 bic.w r3, r3, #32768 ; 0x8000
800034c: 60e3 str r3, [r4, #12]
800034e: 68e3 ldr r3, [r4, #12]
8000350: f443 5300 orr.w r3, r3, #8192 ; 0x2000
8000354: 60e3 str r3, [r4, #12]
8000356: 200c movs r0, #12
8000358: f000 fc80 bl 8000c5c <_ZN4modm8platform6Usart218initializeBufferedEm>
800035c: 68e3 ldr r3, [r4, #12]
800035e: 491c ldr r1, [pc, #112] ; (80003d0 <_ZN5Board10initializeEv+0x16c>)
8000360: f043 0308 orr.w r3, r3, #8
8000364: 60e3 str r3, [r4, #12]
8000366: 68e3 ldr r3, [r4, #12]
8000368: f043 0304 orr.w r3, r3, #4
800036c: 60e3 str r3, [r4, #12]
800036e: 4b19 ldr r3, [pc, #100] ; (80003d4 <_ZN5Board10initializeEv+0x170>)
8000370: 681a ldr r2, [r3, #0]
8000372: f022 6240 bic.w r2, r2, #201326592 ; 0xc000000
8000376: 601a str r2, [r3, #0]
8000378: 685a ldr r2, [r3, #4]
800037a: f422 5200 bic.w r2, r2, #8192 ; 0x2000
800037e: 605a str r2, [r3, #4]
8000380: 689a ldr r2, [r3, #8]
8000382: f022 6240 bic.w r2, r2, #201326592 ; 0xc000000
8000386: 609a str r2, [r3, #8]
8000388: f5a3 434c sub.w r3, r3, #52224 ; 0xcc00
800038c: 689a ldr r2, [r3, #8]
800038e: f442 5200 orr.w r2, r2, #8192 ; 0x2000
8000392: 609a str r2, [r3, #8]
8000394: 68da ldr r2, [r3, #12]
8000396: f422 5200 bic.w r2, r2, #8192 ; 0x2000
800039a: 60da str r2, [r3, #12]
800039c: 694a ldr r2, [r1, #20]
800039e: f022 02f0 bic.w r2, r2, #240 ; 0xf0
80003a2: f042 0220 orr.w r2, r2, #32
80003a6: 614a str r2, [r1, #20]
80003a8: 681a ldr r2, [r3, #0]
80003aa: f442 5200 orr.w r2, r2, #8192 ; 0x2000
80003ae: 601a str r2, [r3, #0]
80003b0: bd10 pop {r4, pc}
80003b2: bf00 nop
80003b4: 20000c6c .word 0x20000c6c
80003b8: 15555555 .word 0x15555555
80003bc: 20000c70 .word 0x20000c70
80003c0: 00057619 .word 0x00057619
80003c4: 002dc6bf .word 0x002dc6bf
80003c8: 40020000 .word 0x40020000
80003cc: 40004400 .word 0x40004400
80003d0: 40013800 .word 0x40013800
80003d4: 40020800 .word 0x40020800
080003d8 <main>:
80003d8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
80003dc: 4c33 ldr r4, [pc, #204] ; (80004ac <main+0xd4>)
80003de: f8df 80f0 ldr.w r8, [pc, #240] ; 80004d0 <main+0xf8>
80003e2: f8df 90f0 ldr.w r9, [pc, #240] ; 80004d4 <main+0xfc>
80003e6: f7ff ff3d bl 8000264 <_ZN5Board10initializeEv>
80003ea: 6823 ldr r3, [r4, #0]
80003ec: 4930 ldr r1, [pc, #192] ; (80004b0 <main+0xd8>)
80003ee: 4831 ldr r0, [pc, #196] ; (80004b4 <main+0xdc>)
80003f0: f423 6340 bic.w r3, r3, #3072 ; 0xc00
80003f4: f443 6380 orr.w r3, r3, #1024 ; 0x400
80003f8: 6023 str r3, [r4, #0]
80003fa: f7ff fedc bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
80003fe: f7ff fecf bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000402: 492d ldr r1, [pc, #180] ; (80004b8 <main+0xe0>)
8000404: 482d ldr r0, [pc, #180] ; (80004bc <main+0xe4>)
8000406: f7ff fed6 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800040a: f7ff fec9 bl 80001a0 <_ZN4modm8IOStream4endlEv>
800040e: 492c ldr r1, [pc, #176] ; (80004c0 <main+0xe8>)
8000410: 482c ldr r0, [pc, #176] ; (80004c4 <main+0xec>)
8000412: f7ff fed0 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000416: f7ff fec3 bl 80001a0 <_ZN4modm8IOStream4endlEv>
800041a: 492b ldr r1, [pc, #172] ; (80004c8 <main+0xf0>)
800041c: 482b ldr r0, [pc, #172] ; (80004cc <main+0xf4>)
800041e: f7ff feca bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000422: f7ff febd bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000426: f04f 0a00 mov.w sl, #0
800042a: 6963 ldr r3, [r4, #20]
800042c: 069b lsls r3, r3, #26
800042e: bf4c ite mi
8000430: f44f 1300 movmi.w r3, #2097152 ; 0x200000
8000434: 2320 movpl r3, #32
8000436: 61a3 str r3, [r4, #24]
8000438: f8d8 3010 ldr.w r3, [r8, #16]
800043c: f413 5f00 tst.w r3, #8192 ; 0x2000
8000440: bf08 it eq
8000442: 2064 moveq r0, #100 ; 0x64
8000444: f44f 737a mov.w r3, #1000 ; 0x3e8
8000448: bf18 it ne
800044a: f44f 70fa movne.w r0, #500 ; 0x1f4
800044e: 4358 muls r0, r3
8000450: f000 fd7a bl 8000f48 <__fastcode_load>
8000454: 4819 ldr r0, [pc, #100] ; (80004bc <main+0xe4>)
8000456: 4649 mov r1, r9
8000458: f7ff fead bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800045c: 6843 ldr r3, [r0, #4]
800045e: 4605 mov r5, r0
8000460: f10a 0701 add.w r7, sl, #1
8000464: b93b cbnz r3, 8000476 <main+0x9e>
8000466: 4651 mov r1, sl
8000468: f000 fa48 bl 80008fc <_ZN4modm8IOStream12writeIntegerEm>
800046c: 4628 mov r0, r5
800046e: f7ff fe97 bl 80001a0 <_ZN4modm8IOStream4endlEv>
8000472: 46ba mov sl, r7
8000474: e7d9 b.n 800042a <main+0x52>
8000476: 2b02 cmp r3, #2
8000478: f04f 0618 mov.w r6, #24
800047c: d10a bne.n 8000494 <main+0xbc>
800047e: fa2a f106 lsr.w r1, sl, r6
8000482: 3e08 subs r6, #8
8000484: b2c9 uxtb r1, r1
8000486: 4628 mov r0, r5
8000488: b2f6 uxtb r6, r6
800048a: f000 f8f3 bl 8000674 <_ZN4modm8IOStream8writeBinEh>
800048e: 2ef8 cmp r6, #248 ; 0xf8
8000490: d1f5 bne.n 800047e <main+0xa6>
8000492: e7eb b.n 800046c <main+0x94>
8000494: fa2a f106 lsr.w r1, sl, r6
8000498: 3e08 subs r6, #8
800049a: b2c9 uxtb r1, r1
800049c: 4628 mov r0, r5
800049e: b2f6 uxtb r6, r6
80004a0: f000 f8dc bl 800065c <_ZN4modm8IOStream8writeHexEh>
80004a4: 2ef8 cmp r6, #248 ; 0xf8
80004a6: d1f5 bne.n 8000494 <main+0xbc>
80004a8: e7e0 b.n 800046c <main+0x94>
80004aa: bf00 nop
80004ac: 40020000 .word 0x40020000
80004b0: 08000e94 .word 0x08000e94
80004b4: 20000c7c .word 0x20000c7c
80004b8: 08000e9a .word 0x08000e9a
80004bc: 20000c74 .word 0x20000c74
80004c0: 08000e9f .word 0x08000e9f
80004c4: 20000c8c .word 0x20000c8c
80004c8: 08000ea7 .word 0x08000ea7
80004cc: 20000c84 .word 0x20000c84
80004d0: 40020800 .word 0x40020800
80004d4: 08000ead .word 0x08000ead
080004d8 <__aeabi_atexit>:
80004d8: 2000 movs r0, #0
80004da: 4770 bx lr
080004dc <_ZdlPvj>:
80004dc: f000 bc74 b.w 8000dc8 <free>
080004e0 <_ZN4modm8IODevice5writeEPKc>:
80004e0: b538 push {r3, r4, r5, lr}
80004e2: 4604 mov r4, r0
80004e4: 460d mov r5, r1
80004e6: f815 1b01 ldrb.w r1, [r5], #1
80004ea: b121 cbz r1, 80004f6 <_ZN4modm8IODevice5writeEPKc+0x16>
80004ec: 6823 ldr r3, [r4, #0]
80004ee: 4620 mov r0, r4
80004f0: 689b ldr r3, [r3, #8]
80004f2: 4798 blx r3
80004f4: e7f7 b.n 80004e6 <_ZN4modm8IODevice5writeEPKc+0x6>
80004f6: bd38 pop {r3, r4, r5, pc}
080004f8 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EED1Ev>:
80004f8: 4770 bx lr
080004fa <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE4readERc>:
80004fa: 4608 mov r0, r1
80004fc: f000 bc08 b.w 8000d10 <_ZN4modm8platform6Usart24readERh>
08000500 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5flushEv>:
8000500: f000 bc00 b.w 8000d04 <_ZN4modm8platform6Usart216flushWriteBufferEv>
08000504 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5writeEc>:
8000504: b510 push {r4, lr}
8000506: 460c mov r4, r1
8000508: 4620 mov r0, r4
800050a: f000 fbb9 bl 8000c80 <_ZN4modm8platform6Usart25writeEh>
800050e: 2800 cmp r0, #0
8000510: d0fa beq.n 8000508 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EE5writeEc+0x4>
8000512: bd10 pop {r4, pc}
08000514 <_ZN4modm15IODeviceWrapperINS_8platform6Usart2ELNS_8IOBufferE1EED0Ev>:
8000514: b510 push {r4, lr}
8000516: 2104 movs r1, #4
8000518: 4604 mov r4, r0
800051a: f7ff ffdf bl 80004dc <_ZdlPvj>
800051e: 4620 mov r0, r4
8000520: bd10 pop {r4, pc}
...
08000524 <modm_abandon>:
8000524: b5f8 push {r3, r4, r5, r6, r7, lr}
8000526: 4605 mov r5, r0
8000528: 492c ldr r1, [pc, #176] ; (80005dc <modm_abandon+0xb8>)
800052a: 482d ldr r0, [pc, #180] ; (80005e0 <modm_abandon+0xbc>)
800052c: f7ff fe43 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000530: 6829 ldr r1, [r5, #0]
8000532: f7ff fe40 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000536: 492b ldr r1, [pc, #172] ; (80005e4 <modm_abandon+0xc0>)
8000538: f7ff fe3d bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800053c: 686b ldr r3, [r5, #4]
800053e: 3301 adds r3, #1
8000540: d016 beq.n 8000570 <modm_abandon+0x4c>
8000542: 4929 ldr r1, [pc, #164] ; (80005e8 <modm_abandon+0xc4>)
8000544: 4826 ldr r0, [pc, #152] ; (80005e0 <modm_abandon+0xbc>)
8000546: f7ff fe36 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800054a: 6869 ldr r1, [r5, #4]
800054c: 4604 mov r4, r0
800054e: f000 f8a3 bl 8000698 <_ZN4modm8IOStream12writePointerEPKv>
8000552: 4620 mov r0, r4
8000554: 4925 ldr r1, [pc, #148] ; (80005ec <modm_abandon+0xc8>)
8000556: f7ff fe2e bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800055a: 6843 ldr r3, [r0, #4]
800055c: 686e ldr r6, [r5, #4]
800055e: 4604 mov r4, r0
8000560: bb13 cbnz r3, 80005a8 <modm_abandon+0x84>
8000562: 4631 mov r1, r6
8000564: f000 f9ca bl 80008fc <_ZN4modm8IOStream12writeIntegerEm>
8000568: 4921 ldr r1, [pc, #132] ; (80005f0 <modm_abandon+0xcc>)
800056a: 4620 mov r0, r4
800056c: f7ff fe23 bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
8000570: 4c20 ldr r4, [pc, #128] ; (80005f4 <modm_abandon+0xd0>)
8000572: 4921 ldr r1, [pc, #132] ; (80005f8 <modm_abandon+0xd4>)
8000574: 481a ldr r0, [pc, #104] ; (80005e0 <modm_abandon+0xbc>)
8000576: 4e21 ldr r6, [pc, #132] ; (80005fc <modm_abandon+0xd8>)
8000578: f7ff fe1d bl 80001b6 <_ZN4modm8IOStreamlsEPKc>
800057c: 6822 ldr r2, [r4, #0]
800057e: f422 6240 bic.w r2, r2, #3072 ; 0xc00
8000582: f442 6280 orr.w r2, r2, #1024 ; 0x400
8000586: 6022 str r2, [r4, #0]
8000588: 250b movs r5, #11
800058a: 2720 movs r7, #32
800058c: f644 6020 movw r0, #20000 ; 0x4e20
8000590: 61a7 str r7, [r4, #24]
8000592: f000 fcd9 bl 8000f48 <__fastcode_load>
8000596: f44f 1300 mov.w r3, #2097152 ; 0x200000
800059a: 61a3 str r3, [r4, #24]
800059c: 4630 mov r0, r6
800059e: f000 fcd3 bl 8000f48 <__fastcode_load>
80005a2: 3d01 subs r5, #1
80005a4: d1f2 bne.n 800058c <modm_abandon+0x68>
80005a6: bdf8 pop {r3, r4, r5, r6, r7, pc}
80005a8: 2b02 cmp r3, #2
80005aa: f04f 0518 mov.w r5, #24
80005ae: d10a bne.n 80005c6 <modm_abandon+0xa2>
80005b0: fa26 f105 lsr.w r1, r6, r5
80005b4: 3d08 subs r5, #8
80005b6: b2c9 uxtb r1, r1
80005b8: 4620 mov r0, r4
80005ba: b2ed uxtb r5, r5
80005bc: f000 f85a bl 8000674 <_ZN4modm8IOStream8writeBinEh>
80005c0: 2df8 cmp r5, #248 ; 0xf8
80005c2: d1f5 bne.n 80005b0 <modm_abandon+0x8c>
80005c4: e7d0 b.n 8000568 <modm_abandon+0x44>
80005c6: fa26 f105 lsr.w r1, r6, r5
80005ca: 3d08 subs r5, #8
80005cc: b2c9 uxtb r1, r1
80005ce: 4620 mov r0, r4
80005d0: b2ed uxtb r5, r5
80005d2: f000 f843 bl 800065c <_ZN4modm8IOStream8writeHexEh>
80005d6: 2df8 cmp r5, #248 ; 0xf8
80005d8: d1f5 bne.n 80005c6 <modm_abandon+0xa2>
80005da: e7c5 b.n 8000568 <modm_abandon+0x44>
80005dc: 08000eba .word 0x08000eba
80005e0: 20000c84 .word 0x20000c84
80005e4: 08000ec4 .word 0x08000ec4
80005e8: 08000ec6 .word 0x08000ec6
80005ec: 08000eca .word 0x08000eca
80005f0: 08000ecd .word 0x08000ecd
80005f4: 40020000 .word 0x40020000
80005f8: 08000ecf .word 0x08000ecf
80005fc: 0002bf20 .word 0x0002bf20
08000600 <_GLOBAL__sub_I_loggerDevice>:
8000600: b510 push {r4, lr}
8000602: 4c0a ldr r4, [pc, #40] ; (800062c <_GLOBAL__sub_I_loggerDevice+0x2c>)
8000604: 4a0a ldr r2, [pc, #40] ; (8000630 <_GLOBAL__sub_I_loggerDevice+0x30>)
8000606: 490b ldr r1, [pc, #44] ; (8000634 <_GLOBAL__sub_I_loggerDevice+0x34>)
8000608: 4620 mov r0, r4
800060a: f7ff ff65 bl 80004d8 <__aeabi_atexit>
800060e: 4a0a ldr r2, [pc, #40] ; (8000638 <_GLOBAL__sub_I_loggerDevice+0x38>)
8000610: 2300 movs r3, #0
8000612: 6014 str r4, [r2, #0]
8000614: 6053 str r3, [r2, #4]
8000616: 4a09 ldr r2, [pc, #36] ; (800063c <_GLOBAL__sub_I_loggerDevice+0x3c>)
8000618: e9c2 4300 strd r4, r3, [r2]
800061c: 4a08 ldr r2, [pc, #32] ; (8000640 <_GLOBAL__sub_I_loggerDevice+0x40>)
800061e: e9c2 4300 strd r4, r3, [r2]
8000622: 4a08 ldr r2, [pc, #32] ; (8000644 <_GLOBAL__sub_I_loggerDevice+0x44>)
8000624: e9c2 4300 strd r4, r3, [r2]
8000628: bd10 pop {r4, pc}
800062a: bf00 nop
800062c: 20000c04 .word 0x20000c04
8000630: 20000c00 .word 0x20000c00
8000634: 080004f9 .word 0x080004f9
8000638: 20000c7c .word 0x20000c7c
800063c: 20000c74 .word 0x20000c74
8000640: 20000c8c .word 0x20000c8c
8000644: 20000c84 .word 0x20000c84
08000648 <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>:
8000648: 6800 ldr r0, [r0, #0]
800064a: 6803 ldr r3, [r0, #0]
800064c: 2909 cmp r1, #9
800064e: 689a ldr r2, [r3, #8]
8000650: bf8c ite hi
8000652: 2337 movhi r3, #55 ; 0x37
8000654: 2330 movls r3, #48 ; 0x30
8000656: 4419 add r1, r3
8000658: b2c9 uxtb r1, r1
800065a: 4710 bx r2
0800065c <_ZN4modm8IOStream8writeHexEh>:
800065c: b538 push {r3, r4, r5, lr}
800065e: 4605 mov r5, r0
8000660: 460c mov r4, r1
8000662: 0909 lsrs r1, r1, #4
8000664: f7ff fff0 bl 8000648 <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>
8000668: f004 010f and.w r1, r4, #15
800066c: 4628 mov r0, r5
800066e: f7ff ffeb bl 8000648 <_ZZN4modm8IOStream8writeHexEhENKUlhE_clEh.isra.0>
8000672: bd38 pop {r3, r4, r5, pc}
08000674 <_ZN4modm8IOStream8writeBinEh>:
8000674: b570 push {r4, r5, r6, lr}
8000676: 4606 mov r6, r0
8000678: 460c mov r4, r1
800067a: 2508 movs r5, #8
800067c: 6830 ldr r0, [r6, #0]
800067e: 6803 ldr r3, [r0, #0]
8000680: f014 0f80 tst.w r4, #128 ; 0x80
8000684: bf14 ite ne
8000686: 2131 movne r1, #49 ; 0x31
8000688: 2130 moveq r1, #48 ; 0x30
800068a: 689b ldr r3, [r3, #8]
800068c: 4798 blx r3
800068e: 0064 lsls r4, r4, #1
8000690: 3d01 subs r5, #1
8000692: b2e4 uxtb r4, r4
8000694: d1f2 bne.n 800067c <_ZN4modm8IOStream8writeBinEh+0x8>
8000696: bd70 pop {r4, r5, r6, pc}
08000698 <_ZN4modm8IOStream12writePointerEPKv>:
8000698: b570 push {r4, r5, r6, lr}
800069a: 4605 mov r5, r0
800069c: 6800 ldr r0, [r0, #0]
800069e: 6803 ldr r3, [r0, #0]
80006a0: 460e mov r6, r1
80006a2: 689b ldr r3, [r3, #8]
80006a4: 2130 movs r1, #48 ; 0x30
80006a6: 4798 blx r3
80006a8: 6828 ldr r0, [r5, #0]
80006aa: 6803 ldr r3, [r0, #0]
80006ac: 2178 movs r1, #120 ; 0x78
80006ae: 689b ldr r3, [r3, #8]
80006b0: 4798 blx r3
80006b2: 2418 movs r4, #24
80006b4: fa26 f104 lsr.w r1, r6, r4
80006b8: 3c08 subs r4, #8
80006ba: b2c9 uxtb r1, r1
80006bc: 4628 mov r0, r5
80006be: b2e4 uxtb r4, r4
80006c0: f7ff ffcc bl 800065c <_ZN4modm8IOStream8writeHexEh>
80006c4: 2cf8 cmp r4, #248 ; 0xf8
80006c6: d1f5 bne.n 80006b4 <_ZN4modm8IOStream12writePointerEPKv+0x1c>
80006c8: bd70 pop {r4, r5, r6, pc}
080006ca <_out_rev>:
80006ca: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
80006ce: f8dd 903c ldr.w r9, [sp, #60] ; 0x3c
80006d2: f019 0f03 tst.w r9, #3
80006d6: e9dd 460d ldrd r4, r6, [sp, #52] ; 0x34
80006da: 4607 mov r7, r0
80006dc: 468b mov fp, r1
80006de: 4615 mov r5, r2
80006e0: d10b bne.n 80006fa <_out_rev+0x30>
80006e2: 46a0 mov r8, r4
80006e4: eba2 0a04 sub.w sl, r2, r4
80006e8: 45b0 cmp r8, r6
80006ea: eb0a 0208 add.w r2, sl, r8
80006ee: d314 bcc.n 800071a <_out_rev+0x50>
80006f0: 1b32 subs r2, r6, r4
80006f2: 42b4 cmp r4, r6
80006f4: bf88 it hi
80006f6: 2200 movhi r2, #0
80006f8: 442a add r2, r5
80006fa: 990c ldr r1, [sp, #48] ; 0x30
80006fc: eb01 0804 add.w r8, r1, r4
8000700: 4414 add r4, r2
8000702: 42a2 cmp r2, r4
8000704: d011 beq.n 800072a <_out_rev+0x60>
8000706: f102 0a01 add.w sl, r2, #1
800070a: f818 0d01 ldrb.w r0, [r8, #-1]!
800070e: 9301 str r3, [sp, #4]
8000710: 4659 mov r1, fp
8000712: 47b8 blx r7
8000714: 9b01 ldr r3, [sp, #4]
8000716: 4652 mov r2, sl
8000718: e7f3 b.n 8000702 <_out_rev+0x38>
800071a: 4659 mov r1, fp
800071c: 2020 movs r0, #32
800071e: 9301 str r3, [sp, #4]
8000720: f108 0801 add.w r8, r8, #1
8000724: 47b8 blx r7
8000726: 9b01 ldr r3, [sp, #4]
8000728: e7de b.n 80006e8 <_out_rev+0x1e>
800072a: f019 0f02 tst.w r9, #2
800072e: d00a beq.n 8000746 <_out_rev+0x7c>
8000730: eba4 0905 sub.w r9, r4, r5
8000734: 46c8 mov r8, r9
8000736: 4546 cmp r6, r8
8000738: eb05 0208 add.w r2, r5, r8
800073c: d807 bhi.n 800074e <_out_rev+0x84>
800073e: 4435 add r5, r6
8000740: 454e cmp r6, r9
8000742: bf28 it cs
8000744: 462c movcs r4, r5
8000746: 4620 mov r0, r4
8000748: b003 add sp, #12
800074a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
800074e: 4659 mov r1, fp
8000750: 2020 movs r0, #32
8000752: 9301 str r3, [sp, #4]
8000754: f108 0801 add.w r8, r8, #1
8000758: 47b8 blx r7
800075a: 9b01 ldr r3, [sp, #4]
800075c: e7eb b.n 8000736 <_out_rev+0x6c>
0800075e <_ntoa_format>:
800075e: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
8000762: e9dd 760d ldrd r7, r6, [sp, #52] ; 0x34
8000766: f016 0f02 tst.w r6, #2
800076a: e9dd 5408 ldrd r5, r4, [sp, #32]
800076e: e9dd c80b ldrd ip, r8, [sp, #44] ; 0x2c
8000772: f89d e028 ldrb.w lr, [sp, #40] ; 0x28
8000776: d123 bne.n 80007c0 <_ntoa_format+0x62>
8000778: f006 0901 and.w r9, r6, #1
800077c: b14f cbz r7, 8000792 <_ntoa_format+0x34>
800077e: f1b9 0f00 cmp.w r9, #0
8000782: d006 beq.n 8000792 <_ntoa_format+0x34>
8000784: f1be 0f00 cmp.w lr, #0
8000788: d102 bne.n 8000790 <_ntoa_format+0x32>
800078a: f016 0f0c tst.w r6, #12
800078e: d000 beq.n 8000792 <_ntoa_format+0x34>
8000790: 3f01 subs r7, #1
8000792: f04f 0a30 mov.w sl, #48 ; 0x30
8000796: 4544 cmp r4, r8
8000798: d201 bcs.n 800079e <_ntoa_format+0x40>
800079a: 2c20 cmp r4, #32
800079c: d10c bne.n 80007b8 <_ntoa_format+0x5a>
800079e: f04f 0a30 mov.w sl, #48 ; 0x30
80007a2: f1b9 0f00 cmp.w r9, #0
80007a6: d00b beq.n 80007c0 <_ntoa_format+0x62>
80007a8: 42bc cmp r4, r7
80007aa: d209 bcs.n 80007c0 <_ntoa_format+0x62>
80007ac: 2c1f cmp r4, #31
80007ae: d807 bhi.n 80007c0 <_ntoa_format+0x62>
80007b0: f805 a004 strb.w sl, [r5, r4]
80007b4: 3401 adds r4, #1
80007b6: e7f4 b.n 80007a2 <_ntoa_format+0x44>
80007b8: f805 a004 strb.w sl, [r5, r4]
80007bc: 3401 adds r4, #1
80007be: e7ea b.n 8000796 <_ntoa_format+0x38>
80007c0: f016 0f10 tst.w r6, #16
80007c4: d01f beq.n 8000806 <_ntoa_format+0xa8>
80007c6: f416 6f80 tst.w r6, #1024 ; 0x400
80007ca: d12f bne.n 800082c <_ntoa_format+0xce>
80007cc: b374 cbz r4, 800082c <_ntoa_format+0xce>
80007ce: 4544 cmp r4, r8
80007d0: d001 beq.n 80007d6 <_ntoa_format+0x78>
80007d2: 42bc cmp r4, r7
80007d4: d12a bne.n 800082c <_ntoa_format+0xce>
80007d6: f1b4 0801 subs.w r8, r4, #1
80007da: d026 beq.n 800082a <_ntoa_format+0xcc>
80007dc: f1bc 0f10 cmp.w ip, #16
80007e0: d12f bne.n 8000842 <_ntoa_format+0xe4>
80007e2: 3c02 subs r4, #2
80007e4: f016 0f20 tst.w r6, #32
80007e8: d12d bne.n 8000846 <_ntoa_format+0xe8>
80007ea: 2c1f cmp r4, #31
80007ec: d815 bhi.n 800081a <_ntoa_format+0xbc>
80007ee: f04f 0c78 mov.w ip, #120 ; 0x78
80007f2: f805 c004 strb.w ip, [r5, r4]
80007f6: 3401 adds r4, #1
80007f8: 2c1f cmp r4, #31
80007fa: d80e bhi.n 800081a <_ntoa_format+0xbc>
80007fc: f04f 0c30 mov.w ip, #48 ; 0x30
8000800: f805 c004 strb.w ip, [r5, r4]
8000804: 3401 adds r4, #1
8000806: 2c1f cmp r4, #31
8000808: d807 bhi.n 800081a <_ntoa_format+0xbc>
800080a: f1be 0f00 cmp.w lr, #0
800080e: d01f beq.n 8000850 <_ntoa_format+0xf2>
8000810: f04f 0c2d mov.w ip, #45 ; 0x2d
8000814: f805 c004 strb.w ip, [r5, r4]
8000818: 3401 adds r4, #1
800081a: e9cd 760a strd r7, r6, [sp, #40] ; 0x28
800081e: e9cd 5408 strd r5, r4, [sp, #32]
8000822: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
8000826: f7ff bf50 b.w 80006ca <_out_rev>
800082a: 4644 mov r4, r8
800082c: f1bc 0f10 cmp.w ip, #16
8000830: d0d8 beq.n 80007e4 <_ntoa_format+0x86>
8000832: f1bc 0f02 cmp.w ip, #2
8000836: d1df bne.n 80007f8 <_ntoa_format+0x9a>
8000838: 2c1f cmp r4, #31
800083a: d8ee bhi.n 800081a <_ntoa_format+0xbc>
800083c: f04f 0c62 mov.w ip, #98 ; 0x62
8000840: e7d7 b.n 80007f2 <_ntoa_format+0x94>
8000842: 4644 mov r4, r8
8000844: e7f5 b.n 8000832 <_ntoa_format+0xd4>
8000846: 2c1f cmp r4, #31
8000848: d8e7 bhi.n 800081a <_ntoa_format+0xbc>
800084a: f04f 0c58 mov.w ip, #88 ; 0x58
800084e: e7d0 b.n 80007f2 <_ntoa_format+0x94>
8000850: f016 0f04 tst.w r6, #4
8000854: d002 beq.n 800085c <_ntoa_format+0xfe>
8000856: f04f 0c2b mov.w ip, #43 ; 0x2b
800085a: e7db b.n 8000814 <_ntoa_format+0xb6>
800085c: f016 0f08 tst.w r6, #8
8000860: d0db beq.n 800081a <_ntoa_format+0xbc>
8000862: f04f 0c20 mov.w ip, #32
8000866: e7d5 b.n 8000814 <_ntoa_format+0xb6>
08000868 <_ntoa_long>:
8000868: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
800086c: b091 sub sp, #68 ; 0x44
800086e: 9d18 ldr r5, [sp, #96] ; 0x60
8000870: 9e1a ldr r6, [sp, #104] ; 0x68
8000872: 9f1d ldr r7, [sp, #116] ; 0x74
8000874: b90d cbnz r5, 800087a <_ntoa_long+0x12>
8000876: f027 0710 bic.w r7, r7, #16
800087a: 057c lsls r4, r7, #21
800087c: d500 bpl.n 8000880 <_ntoa_long+0x18>
800087e: b30d cbz r5, 80008c4 <_ntoa_long+0x5c>
8000880: f017 0f20 tst.w r7, #32
8000884: 46ac mov ip, r5
8000886: f10d 0e20 add.w lr, sp, #32
800088a: f04f 0500 mov.w r5, #0
800088e: bf14 ite ne
8000890: f04f 0837 movne.w r8, #55 ; 0x37
8000894: f04f 0857 moveq.w r8, #87 ; 0x57
8000898: fbbc f9f6 udiv r9, ip, r6
800089c: fb06 c919 mls r9, r6, r9, ip
80008a0: fa4f f489 sxtb.w r4, r9
80008a4: f1b9 0f09 cmp.w r9, #9
80008a8: bf94 ite ls
80008aa: 3430 addls r4, #48 ; 0x30
80008ac: 4444 addhi r4, r8
80008ae: b2e4 uxtb r4, r4
80008b0: 45b4 cmp ip, r6
80008b2: f80e 4b01 strb.w r4, [lr], #1
80008b6: fbbc f4f6 udiv r4, ip, r6
80008ba: f105 0501 add.w r5, r5, #1
80008be: d301 bcc.n 80008c4 <_ntoa_long+0x5c>
80008c0: 2d20 cmp r5, #32
80008c2: d110 bne.n 80008e6 <_ntoa_long+0x7e>
80008c4: 9c1c ldr r4, [sp, #112] ; 0x70
80008c6: 9405 str r4, [sp, #20]
80008c8: 9c1b ldr r4, [sp, #108] ; 0x6c
80008ca: 9706 str r7, [sp, #24]
80008cc: e9cd 6403 strd r6, r4, [sp, #12]
80008d0: f89d 4064 ldrb.w r4, [sp, #100] ; 0x64
80008d4: e9cd 5401 strd r5, r4, [sp, #4]
80008d8: ac08 add r4, sp, #32
80008da: 9400 str r4, [sp, #0]
80008dc: f7ff ff3f bl 800075e <_ntoa_format>
80008e0: b011 add sp, #68 ; 0x44
80008e2: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
80008e6: 46a4 mov ip, r4
80008e8: e7d6 b.n 8000898 <_ntoa_long+0x30>
080008ea <_ZN12_GLOBAL__N_18out_charEcPvjj>:
80008ea: b128 cbz r0, 80008f8 <_ZN12_GLOBAL__N_18out_charEcPvjj+0xe>
80008ec: 680b ldr r3, [r1, #0]
80008ee: 681a ldr r2, [r3, #0]
80008f0: 4601 mov r1, r0
80008f2: 6892 ldr r2, [r2, #8]
80008f4: 4618 mov r0, r3
80008f6: 4710 bx r2
80008f8: 4770 bx lr
...
080008fc <_ZN4modm8IOStream12writeIntegerEm>:
80008fc: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
80008fe: 2200 movs r2, #0
8000900: f44f 7380 mov.w r3, #256 ; 0x100
8000904: e9cd 2304 strd r2, r3, [sp, #16]
8000908: 230a movs r3, #10
800090a: e9cd 2301 strd r2, r3, [sp, #4]
800090e: 9100 str r1, [sp, #0]
8000910: 9203 str r2, [sp, #12]
8000912: 4601 mov r1, r0
8000914: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
8000918: 4802 ldr r0, [pc, #8] ; (8000924 <_ZN4modm8IOStream12writeIntegerEm+0x28>)
800091a: f7ff ffa5 bl 8000868 <_ntoa_long>
800091e: b007 add sp, #28
8000920: f85d fb04 ldr.w pc, [sp], #4
8000924: 080008eb .word 0x080008eb
08000928 <_ZN4modm8platform3Rcc19enableInternalClockEm>:
8000928: 4b08 ldr r3, [pc, #32] ; (800094c <_ZN4modm8platform3Rcc19enableInternalClockEm+0x24>)
800092a: 681a ldr r2, [r3, #0]
800092c: f042 0201 orr.w r2, r2, #1
8000930: 601a str r2, [r3, #0]
8000932: 681a ldr r2, [r3, #0]
8000934: f012 0202 ands.w r2, r2, #2
8000938: d105 bne.n 8000946 <_ZN4modm8platform3Rcc19enableInternalClockEm+0x1e>
800093a: 3801 subs r0, #1
800093c: d1f9 bne.n 8000932 <_ZN4modm8platform3Rcc19enableInternalClockEm+0xa>
800093e: 3800 subs r0, #0
8000940: bf18 it ne
8000942: 2001 movne r0, #1
8000944: 4770 bx lr
8000946: 4610 mov r0, r2
8000948: e7f9 b.n 800093e <_ZN4modm8platform3Rcc19enableInternalClockEm+0x16>
800094a: bf00 nop
800094c: 40023800 .word 0x40023800
08000950 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm>:
8000950: b530 push {r4, r5, lr}
8000952: 4c16 ldr r4, [pc, #88] ; (80009ac <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x5c>)
8000954: 780b ldrb r3, [r1, #0]
8000956: 6865 ldr r5, [r4, #4]
8000958: f025 6574 bic.w r5, r5, #255852544 ; 0xf400000
800095c: f425 355f bic.w r5, r5, #228352 ; 0x37c00
8000960: f425 757f bic.w r5, r5, #1020 ; 0x3fc
8000964: f025 0503 bic.w r5, r5, #3
8000968: 4328 orrs r0, r5
800096a: f003 033f and.w r3, r3, #63 ; 0x3f
800096e: 884d ldrh r5, [r1, #2]
8000970: 4318 orrs r0, r3
8000972: f647 73c0 movw r3, #32704 ; 0x7fc0
8000976: ea03 1385 and.w r3, r3, r5, lsl #6
800097a: 4318 orrs r0, r3
800097c: 790b ldrb r3, [r1, #4]
800097e: 085b lsrs r3, r3, #1
8000980: 3b01 subs r3, #1
8000982: 041b lsls r3, r3, #16
8000984: f403 3340 and.w r3, r3, #196608 ; 0x30000
8000988: 4303 orrs r3, r0
800098a: 6063 str r3, [r4, #4]
800098c: 6823 ldr r3, [r4, #0]
800098e: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
8000992: 6023 str r3, [r4, #0]
8000994: 6823 ldr r3, [r4, #0]
8000996: f013 7300 ands.w r3, r3, #33554432 ; 0x2000000
800099a: d105 bne.n 80009a8 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x58>
800099c: 3a01 subs r2, #1
800099e: d1f9 bne.n 8000994 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x44>
80009a0: 1e10 subs r0, r2, #0
80009a2: bf18 it ne
80009a4: 2001 movne r0, #1
80009a6: bd30 pop {r4, r5, pc}
80009a8: 461a mov r2, r3
80009aa: e7f9 b.n 80009a0 <_ZN4modm8platform3Rcc9enablePllENS1_9PllSourceERKNS1_10PllFactorsEm+0x50>
80009ac: 40023800 .word 0x40023800
080009b0 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm>:
80009b0: 4b08 ldr r3, [pc, #32] ; (80009d4 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0x24>)
80009b2: 689a ldr r2, [r3, #8]
80009b4: f022 0203 bic.w r2, r2, #3
80009b8: 4302 orrs r2, r0
80009ba: 609a str r2, [r3, #8]
80009bc: 0080 lsls r0, r0, #2
80009be: 689a ldr r2, [r3, #8]
80009c0: f002 020c and.w r2, r2, #12
80009c4: 4282 cmp r2, r0
80009c6: d003 beq.n 80009d0 <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0x20>
80009c8: 3901 subs r1, #1
80009ca: d1f8 bne.n 80009be <_ZN4modm8platform3Rcc17enableSystemClockENS1_17SystemClockSourceEm+0xe>
80009cc: 4608 mov r0, r1
80009ce: 4770 bx lr
80009d0: 2001 movs r0, #1
80009d2: 4770 bx lr
80009d4: 40023800 .word 0x40023800
080009d8 <SysTick_Handler>:
80009d8: 4a06 ldr r2, [pc, #24] ; (80009f4 <SysTick_Handler+0x1c>)
80009da: 6813 ldr r3, [r2, #0]
80009dc: 33fa adds r3, #250 ; 0xfa
80009de: 6013 str r3, [r2, #0]
80009e0: 4a05 ldr r2, [pc, #20] ; (80009f8 <SysTick_Handler+0x20>)
80009e2: 6813 ldr r3, [r2, #0]
80009e4: f503 3374 add.w r3, r3, #249856 ; 0x3d000
80009e8: 3390 adds r3, #144 ; 0x90
80009ea: 6013 str r3, [r2, #0]
80009ec: 4b03 ldr r3, [pc, #12] ; (80009fc <SysTick_Handler+0x24>)
80009ee: 2201 movs r2, #1
80009f0: 701a strb r2, [r3, #0]
80009f2: 4770 bx lr
80009f4: 20000c98 .word 0x20000c98
80009f8: 20000c94 .word 0x20000c94
80009fc: 20000c9c .word 0x20000c9c
08000a00 <_ZN4modm8platform12SysTickTimer6enableEmb>:
8000a00: 4b06 ldr r3, [pc, #24] ; (8000a1c <_ZN4modm8platform12SysTickTimer6enableEmb+0x1c>)
8000a02: 22f0 movs r2, #240 ; 0xf0
8000a04: f883 2023 strb.w r2, [r3, #35] ; 0x23
8000a08: f5a3 634f sub.w r3, r3, #3312 ; 0xcf0
8000a0c: 6058 str r0, [r3, #4]
8000a0e: 6098 str r0, [r3, #8]
8000a10: b111 cbz r1, 8000a18 <_ZN4modm8platform12SysTickTimer6enableEmb+0x18>
8000a12: 2203 movs r2, #3
8000a14: 601a str r2, [r3, #0]
8000a16: 4770 bx lr
8000a18: 2207 movs r2, #7
8000a1a: e7fb b.n 8000a14 <_ZN4modm8platform12SysTickTimer6enableEmb+0x14>
8000a1c: e000ed00 .word 0xe000ed00
08000a20 <modm_assert_report>:
8000a20: b5f8 push {r3, r4, r5, r6, r7, lr}
8000a22: 7a04 ldrb r4, [r0, #8]
8000a24: 4e11 ldr r6, [pc, #68] ; (8000a6c <modm_assert_report+0x4c>)
8000a26: 4f12 ldr r7, [pc, #72] ; (8000a70 <modm_assert_report+0x50>)
8000a28: 4605 mov r5, r0
8000a2a: 42be cmp r6, r7
8000a2c: d206 bcs.n 8000a3c <modm_assert_report+0x1c>
8000a2e: f856 3b04 ldr.w r3, [r6], #4
8000a32: 4628 mov r0, r5
8000a34: 4798 blx r3
8000a36: 4304 orrs r4, r0
8000a38: b2e4 uxtb r4, r4
8000a3a: e7f6 b.n 8000a2a <modm_assert_report+0xa>
8000a3c: f004 037f and.w r3, r4, #127 ; 0x7f
8000a40: 2b01 cmp r3, #1
8000a42: 722c strb r4, [r5, #8]
8000a44: d001 beq.n 8000a4a <modm_assert_report+0x2a>
8000a46: 0763 lsls r3, r4, #29
8000a48: d50f bpl.n 8000a6a <modm_assert_report+0x4a>
8000a4a: 4628 mov r0, r5
8000a4c: f7ff fd6a bl 8000524 <modm_abandon>
8000a50: f3bf 8f4f dsb sy
8000a54: 4907 ldr r1, [pc, #28] ; (8000a74 <modm_assert_report+0x54>)
8000a56: 4b08 ldr r3, [pc, #32] ; (8000a78 <modm_assert_report+0x58>)
8000a58: 68ca ldr r2, [r1, #12]
8000a5a: f402 62e0 and.w r2, r2, #1792 ; 0x700
8000a5e: 4313 orrs r3, r2
8000a60: 60cb str r3, [r1, #12]
8000a62: f3bf 8f4f dsb sy
8000a66: bf00 nop
8000a68: e7fd b.n 8000a66 <modm_assert_report+0x46>
8000a6a: bdf8 pop {r3, r4, r5, r6, r7, pc}
8000a6c: 08000f24 .word 0x08000f24
8000a70: 08000f24 .word 0x08000f24
8000a74: e000ed00 .word 0xe000ed00
8000a78: 05fa0004 .word 0x05fa0004
08000a7c <_Z15modm_dwt_enablev>:
8000a7c: 4a06 ldr r2, [pc, #24] ; (8000a98 <_Z15modm_dwt_enablev+0x1c>)
8000a7e: 68d3 ldr r3, [r2, #12]
8000a80: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
8000a84: 60d3 str r3, [r2, #12]
8000a86: 4b05 ldr r3, [pc, #20] ; (8000a9c <_Z15modm_dwt_enablev+0x20>)
8000a88: 2200 movs r2, #0
8000a8a: 605a str r2, [r3, #4]
8000a8c: 681a ldr r2, [r3, #0]
8000a8e: f042 0201 orr.w r2, r2, #1
8000a92: 601a str r2, [r3, #0]
8000a94: 4770 bx lr
8000a96: bf00 nop
8000a98: e000edf0 .word 0xe000edf0
8000a9c: e0001000 .word 0xe0001000
08000aa0 <__modm_initialize_memory>:
8000aa0: 4770 bx lr
...
08000ab0 <Reset_Handler>:
8000ab0: 4802 ldr r0, [pc, #8] ; (8000abc <Reset_Handler+0xc>)
8000ab2: 4685 mov sp, r0
8000ab4: f000 f886 bl 8000bc4 <__modm_initialize_platform>
8000ab8: f000 b812 b.w 8000ae0 <__modm_startup>
8000abc: 20000c00 .word 0x20000c00
08000ac0 <table_copy>:
8000ac0: b530 push {r4, r5, lr}
8000ac2: 4288 cmp r0, r1
8000ac4: d300 bcc.n 8000ac8 <table_copy+0x8>
8000ac6: bd30 pop {r4, r5, pc}
8000ac8: e890 001c ldmia.w r0, {r2, r3, r4}
8000acc: 429c cmp r4, r3
8000ace: d801 bhi.n 8000ad4 <table_copy+0x14>
8000ad0: 300c adds r0, #12
8000ad2: e7f6 b.n 8000ac2 <table_copy+0x2>
8000ad4: f852 5b04 ldr.w r5, [r2], #4
8000ad8: f843 5b04 str.w r5, [r3], #4
8000adc: e7f6 b.n 8000acc <table_copy+0xc>
...
08000ae0 <__modm_startup>:
8000ae0: b538 push {r3, r4, r5, lr}
8000ae2: 4929 ldr r1, [pc, #164] ; (8000b88 <__modm_startup+0xa8>)
8000ae4: 4829 ldr r0, [pc, #164] ; (8000b8c <__modm_startup+0xac>)
8000ae6: f7ff ffeb bl 8000ac0 <table_copy>
8000aea: 4b29 ldr r3, [pc, #164] ; (8000b90 <__modm_startup+0xb0>)
8000aec: 4929 ldr r1, [pc, #164] ; (8000b94 <__modm_startup+0xb4>)
8000aee: 2000 movs r0, #0
8000af0: 428b cmp r3, r1
8000af2: d32e bcc.n 8000b52 <__modm_startup+0x72>
8000af4: 4b28 ldr r3, [pc, #160] ; (8000b98 <__modm_startup+0xb8>)
8000af6: 4c29 ldr r4, [pc, #164] ; (8000b9c <__modm_startup+0xbc>)
8000af8: f8d3 2088 ldr.w r2, [r3, #136] ; 0x88
8000afc: 4d28 ldr r5, [pc, #160] ; (8000ba0 <__modm_startup+0xc0>)
8000afe: f442 0270 orr.w r2, r2, #15728640 ; 0xf00000
8000b02: f8c3 2088 str.w r2, [r3, #136] ; 0x88
8000b06: 4a27 ldr r2, [pc, #156] ; (8000ba4 <__modm_startup+0xc4>)
8000b08: 609a str r2, [r3, #8]
8000b0a: 695a ldr r2, [r3, #20]
8000b0c: f042 0210 orr.w r2, r2, #16
8000b10: 615a str r2, [r3, #20]
8000b12: 42ac cmp r4, r5
8000b14: d326 bcc.n 8000b64 <__modm_startup+0x84>
8000b16: 4924 ldr r1, [pc, #144] ; (8000ba8 <__modm_startup+0xc8>)
8000b18: 4824 ldr r0, [pc, #144] ; (8000bac <__modm_startup+0xcc>)
8000b1a: f7ff ffd1 bl 8000ac0 <table_copy>
8000b1e: 4b24 ldr r3, [pc, #144] ; (8000bb0 <__modm_startup+0xd0>)
8000b20: 4924 ldr r1, [pc, #144] ; (8000bb4 <__modm_startup+0xd4>)
8000b22: 2000 movs r0, #0
8000b24: 428b cmp r3, r1
8000b26: d321 bcc.n 8000b6c <__modm_startup+0x8c>
8000b28: f7ff ffba bl 8000aa0 <__modm_initialize_memory>
8000b2c: 4c22 ldr r4, [pc, #136] ; (8000bb8 <__modm_startup+0xd8>)
8000b2e: 4d23 ldr r5, [pc, #140] ; (8000bbc <__modm_startup+0xdc>)
8000b30: 42ac cmp r4, r5
8000b32: d324 bcc.n 8000b7e <__modm_startup+0x9e>
8000b34: f7ff fc50 bl 80003d8 <main>
8000b38: f3bf 8f4f dsb sy
8000b3c: 4916 ldr r1, [pc, #88] ; (8000b98 <__modm_startup+0xb8>)
8000b3e: 4b20 ldr r3, [pc, #128] ; (8000bc0 <__modm_startup+0xe0>)
8000b40: 68ca ldr r2, [r1, #12]
8000b42: f402 62e0 and.w r2, r2, #1792 ; 0x700
8000b46: 4313 orrs r3, r2
8000b48: 60cb str r3, [r1, #12]
8000b4a: f3bf 8f4f dsb sy
8000b4e: bf00 nop
8000b50: e7fd b.n 8000b4e <__modm_startup+0x6e>
8000b52: e9d3 2400 ldrd r2, r4, [r3]
8000b56: 42a2 cmp r2, r4
8000b58: d301 bcc.n 8000b5e <__modm_startup+0x7e>
8000b5a: 3308 adds r3, #8
8000b5c: e7c8 b.n 8000af0 <__modm_startup+0x10>
8000b5e: f842 0b04 str.w r0, [r2], #4
8000b62: e7f8 b.n 8000b56 <__modm_startup+0x76>
8000b64: f854 3b04 ldr.w r3, [r4], #4
8000b68: 4798 blx r3
8000b6a: e7d2 b.n 8000b12 <__modm_startup+0x32>
8000b6c: e9d3 2400 ldrd r2, r4, [r3]
8000b70: 42a2 cmp r2, r4
8000b72: d301 bcc.n 8000b78 <__modm_startup+0x98>
8000b74: 3308 adds r3, #8
8000b76: e7d5 b.n 8000b24 <__modm_startup+0x44>
8000b78: f842 0b04 str.w r0, [r2], #4
8000b7c: e7f8 b.n 8000b70 <__modm_startup+0x90>
8000b7e: f854 3b04 ldr.w r3, [r4], #4
8000b82: 4798 blx r3
8000b84: e7d4 b.n 8000b30 <__modm_startup+0x50>
8000b86: bf00 nop
8000b88: 08000ffc .word 0x08000ffc
8000b8c: 08000fe4 .word 0x08000fe4
8000b90: 08000fdc .word 0x08000fdc
8000b94: 08000fe4 .word 0x08000fe4
8000b98: e000ed00 .word 0xe000ed00
8000b9c: 08000f1c .word 0x08000f1c
8000ba0: 08000f24 .word 0x08000f24
8000ba4: 08000000 .word 0x08000000
8000ba8: 08000ffc .word 0x08000ffc
8000bac: 08000ffc .word 0x08000ffc
8000bb0: 08000ffc .word 0x08000ffc
8000bb4: 08000ffc .word 0x08000ffc
8000bb8: 08000f14 .word 0x08000f14
8000bbc: 08000f1c .word 0x08000f1c
8000bc0: 05fa0004 .word 0x05fa0004
08000bc4 <__modm_initialize_platform>:
8000bc4: 4a02 ldr r2, [pc, #8] ; (8000bd0 <__modm_initialize_platform+0xc>)
8000bc6: 6c53 ldr r3, [r2, #68] ; 0x44
8000bc8: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8000bcc: 6453 str r3, [r2, #68] ; 0x44
8000bce: 4770 bx lr
8000bd0: 40023800 .word 0x40023800
08000bd4 <Undefined_Handler>:
8000bd4: b51f push {r0, r1, r2, r3, r4, lr}
8000bd6: f3ef 8205 mrs r2, IPSR
8000bda: 3a10 subs r2, #16
8000bdc: b253 sxtb r3, r2
8000bde: 2b00 cmp r3, #0
8000be0: db1b blt.n 8000c1a <Undefined_Handler+0x46>
8000be2: 4811 ldr r0, [pc, #68] ; (8000c28 <Undefined_Handler+0x54>)
8000be4: 18c1 adds r1, r0, r3
8000be6: 24f0 movs r4, #240 ; 0xf0
8000be8: 095b lsrs r3, r3, #5
8000bea: f881 4300 strb.w r4, [r1, #768] ; 0x300
8000bee: 3320 adds r3, #32
8000bf0: f002 041f and.w r4, r2, #31
8000bf4: 2101 movs r1, #1
8000bf6: 40a1 lsls r1, r4
8000bf8: f840 1023 str.w r1, [r0, r3, lsl #2]
8000bfc: f3bf 8f4f dsb sy
8000c00: f3bf 8f6f isb sy
8000c04: 4b09 ldr r3, [pc, #36] ; (8000c2c <Undefined_Handler+0x58>)
8000c06: a801 add r0, sp, #4
8000c08: e9cd 3201 strd r3, r2, [sp, #4]
8000c0c: 2301 movs r3, #1
8000c0e: f88d 300c strb.w r3, [sp, #12]
8000c12: f7ff ff05 bl 8000a20 <modm_assert_report>
8000c16: b004 add sp, #16
8000c18: bd10 pop {r4, pc}
8000c1a: 4b05 ldr r3, [pc, #20] ; (8000c30 <Undefined_Handler+0x5c>)
8000c1c: f002 010f and.w r1, r2, #15
8000c20: 440b add r3, r1
8000c22: 21f0 movs r1, #240 ; 0xf0
8000c24: 7619 strb r1, [r3, #24]
8000c26: e7ed b.n 8000c04 <Undefined_Handler+0x30>
8000c28: e000e100 .word 0xe000e100
8000c2c: 08000f08 .word 0x08000f08
8000c30: e000ecfc .word 0xe000ecfc
08000c34 <_Z16modm_gpio_enablev>:
8000c34: 4b08 ldr r3, [pc, #32] ; (8000c58 <_Z16modm_gpio_enablev+0x24>)
8000c36: 2201 movs r2, #1
8000c38: 621a str r2, [r3, #32]
8000c3a: f503 3380 add.w r3, r3, #65536 ; 0x10000
8000c3e: 6b1a ldr r2, [r3, #48] ; 0x30
8000c40: f042 028f orr.w r2, r2, #143 ; 0x8f
8000c44: 631a str r2, [r3, #48] ; 0x30
8000c46: 691a ldr r2, [r3, #16]
8000c48: f042 028f orr.w r2, r2, #143 ; 0x8f
8000c4c: 611a str r2, [r3, #16]
8000c4e: 691a ldr r2, [r3, #16]
8000c50: f022 028f bic.w r2, r2, #143 ; 0x8f
8000c54: 611a str r2, [r3, #16]
8000c56: 4770 bx lr
8000c58: 40013800 .word 0x40013800
08000c5c <_ZN4modm8platform6Usart218initializeBufferedEm>:
8000c5c: 4b06 ldr r3, [pc, #24] ; (8000c78 <_ZN4modm8platform6Usart218initializeBufferedEm+0x1c>)
8000c5e: 0100 lsls r0, r0, #4
8000c60: b2c0 uxtb r0, r0
8000c62: f883 0326 strb.w r0, [r3, #806] ; 0x326
8000c66: 2240 movs r2, #64 ; 0x40
8000c68: 605a str r2, [r3, #4]
8000c6a: 4a04 ldr r2, [pc, #16] ; (8000c7c <_ZN4modm8platform6Usart218initializeBufferedEm+0x20>)
8000c6c: 68d3 ldr r3, [r2, #12]
8000c6e: f043 0320 orr.w r3, r3, #32
8000c72: 60d3 str r3, [r2, #12]
8000c74: 4770 bx lr
8000c76: bf00 nop
8000c78: e000e100 .word 0xe000e100
8000c7c: 40004400 .word 0x40004400
08000c80 <_ZN4modm8platform6Usart25writeEh>:
8000c80: 4b15 ldr r3, [pc, #84] ; (8000cd8 <_ZN4modm8platform6Usart25writeEh+0x58>)
8000c82: 8819 ldrh r1, [r3, #0]
8000c84: 885a ldrh r2, [r3, #2]
8000c86: b289 uxth r1, r1
8000c88: b292 uxth r2, r2
8000c8a: 4291 cmp r1, r2
8000c8c: d106 bne.n 8000c9c <_ZN4modm8platform6Usart25writeEh+0x1c>
8000c8e: 4a13 ldr r2, [pc, #76] ; (8000cdc <_ZN4modm8platform6Usart25writeEh+0x5c>)
8000c90: 6811 ldr r1, [r2, #0]
8000c92: 0609 lsls r1, r1, #24
8000c94: d502 bpl.n 8000c9c <_ZN4modm8platform6Usart25writeEh+0x1c>
8000c96: 6050 str r0, [r2, #4]
8000c98: 2001 movs r0, #1
8000c9a: 4770 bx lr
8000c9c: 881a ldrh r2, [r3, #0]
8000c9e: 8859 ldrh r1, [r3, #2]
8000ca0: 3201 adds r2, #1
8000ca2: b292 uxth r2, r2
8000ca4: f5b2 6f00 cmp.w r2, #2048 ; 0x800
8000ca8: bf88 it hi
8000caa: 2200 movhi r2, #0
8000cac: b289 uxth r1, r1
8000cae: 4291 cmp r1, r2
8000cb0: d00f beq.n 8000cd2 <_ZN4modm8platform6Usart25writeEh+0x52>
8000cb2: 8819 ldrh r1, [r3, #0]
8000cb4: fa13 f181 uxtah r1, r3, r1
8000cb8: 7108 strb r0, [r1, #4]
8000cba: 801a strh r2, [r3, #0]
8000cbc: f3ef 8110 mrs r1, PRIMASK
8000cc0: b672 cpsid i
8000cc2: 4a06 ldr r2, [pc, #24] ; (8000cdc <_ZN4modm8platform6Usart25writeEh+0x5c>)
8000cc4: 68d3 ldr r3, [r2, #12]
8000cc6: f043 0380 orr.w r3, r3, #128 ; 0x80
8000cca: 60d3 str r3, [r2, #12]
8000ccc: f381 8810 msr PRIMASK, r1
8000cd0: e7e2 b.n 8000c98 <_ZN4modm8platform6Usart25writeEh+0x18>
8000cd2: 2000 movs r0, #0
8000cd4: 4770 bx lr
8000cd6: bf00 nop
8000cd8: 20000cb0 .word 0x20000cb0
8000cdc: 40004400 .word 0x40004400
08000ce0 <_ZN4modm8platform6Usart215isWriteFinishedEv>:
8000ce0: 4b06 ldr r3, [pc, #24] ; (8000cfc <_ZN4modm8platform6Usart215isWriteFinishedEv+0x1c>)
8000ce2: 881a ldrh r2, [r3, #0]
8000ce4: 885b ldrh r3, [r3, #2]
8000ce6: b292 uxth r2, r2
8000ce8: b29b uxth r3, r3
8000cea: 429a cmp r2, r3
8000cec: bf03 ittte eq
8000cee: 4b04 ldreq r3, [pc, #16] ; (8000d00 <_ZN4modm8platform6Usart215isWriteFinishedEv+0x20>)
8000cf0: 6818 ldreq r0, [r3, #0]
8000cf2: f3c0 10c0 ubfxeq r0, r0, #7, #1
8000cf6: 2000 movne r0, #0
8000cf8: 4770 bx lr
8000cfa: bf00 nop
8000cfc: 20000cb0 .word 0x20000cb0
8000d00: 40004400 .word 0x40004400
08000d04 <_ZN4modm8platform6Usart216flushWriteBufferEv>:
8000d04: b508 push {r3, lr}
8000d06: f7ff ffeb bl 8000ce0 <_ZN4modm8platform6Usart215isWriteFinishedEv>
8000d0a: 2800 cmp r0, #0
8000d0c: d0fb beq.n 8000d06 <_ZN4modm8platform6Usart216flushWriteBufferEv+0x2>
8000d0e: bd08 pop {r3, pc}
08000d10 <_ZN4modm8platform6Usart24readERh>:
8000d10: 4a09 ldr r2, [pc, #36] ; (8000d38 <_ZN4modm8platform6Usart24readERh+0x28>)
8000d12: 7811 ldrb r1, [r2, #0]
8000d14: 7853 ldrb r3, [r2, #1]
8000d16: 4299 cmp r1, r3
8000d18: d00c beq.n 8000d34 <_ZN4modm8platform6Usart24readERh+0x24>
8000d1a: 7853 ldrb r3, [r2, #1]
8000d1c: 4413 add r3, r2
8000d1e: 789b ldrb r3, [r3, #2]
8000d20: 7003 strb r3, [r0, #0]
8000d22: 7853 ldrb r3, [r2, #1]
8000d24: 3301 adds r3, #1
8000d26: b2db uxtb r3, r3
8000d28: 2b11 cmp r3, #17
8000d2a: bf28 it cs
8000d2c: 2300 movcs r3, #0
8000d2e: 7053 strb r3, [r2, #1]
8000d30: 2001 movs r0, #1
8000d32: 4770 bx lr
8000d34: 2000 movs r0, #0
8000d36: 4770 bx lr
8000d38: 20000c9d .word 0x20000c9d
08000d3c <USART2_IRQHandler>:
8000d3c: 4b19 ldr r3, [pc, #100] ; (8000da4 <USART2_IRQHandler+0x68>)
8000d3e: 681a ldr r2, [r3, #0]
8000d40: 0691 lsls r1, r2, #26
8000d42: d50e bpl.n 8000d62 <USART2_IRQHandler+0x26>
8000d44: 4a18 ldr r2, [pc, #96] ; (8000da8 <USART2_IRQHandler+0x6c>)
8000d46: 6858 ldr r0, [r3, #4]
8000d48: 7813 ldrb r3, [r2, #0]
8000d4a: 7851 ldrb r1, [r2, #1]
8000d4c: 3301 adds r3, #1
8000d4e: b2db uxtb r3, r3
8000d50: 2b11 cmp r3, #17
8000d52: bf28 it cs
8000d54: 2300 movcs r3, #0
8000d56: 4299 cmp r1, r3
8000d58: bf1f itttt ne
8000d5a: 7811 ldrbne r1, [r2, #0]
8000d5c: 7013 strbne r3, [r2, #0]
8000d5e: 1889 addne r1, r1, r2
8000d60: 7088 strbne r0, [r1, #2]
8000d62: 4b10 ldr r3, [pc, #64] ; (8000da4 <USART2_IRQHandler+0x68>)
8000d64: 681a ldr r2, [r3, #0]
8000d66: 0612 lsls r2, r2, #24
8000d68: d50a bpl.n 8000d80 <USART2_IRQHandler+0x44>
8000d6a: 4a10 ldr r2, [pc, #64] ; (8000dac <USART2_IRQHandler+0x70>)
8000d6c: 8810 ldrh r0, [r2, #0]
8000d6e: 8851 ldrh r1, [r2, #2]
8000d70: b280 uxth r0, r0
8000d72: b289 uxth r1, r1
8000d74: 4288 cmp r0, r1
8000d76: d107 bne.n 8000d88 <USART2_IRQHandler+0x4c>
8000d78: 68da ldr r2, [r3, #12]
8000d7a: f022 0280 bic.w r2, r2, #128 ; 0x80
8000d7e: 60da str r2, [r3, #12]
8000d80: 4b08 ldr r3, [pc, #32] ; (8000da4 <USART2_IRQHandler+0x68>)
8000d82: 681a ldr r2, [r3, #0]
8000d84: 685b ldr r3, [r3, #4]
8000d86: 4770 bx lr
8000d88: 8851 ldrh r1, [r2, #2]
8000d8a: fa12 f181 uxtah r1, r2, r1
8000d8e: 7909 ldrb r1, [r1, #4]
8000d90: 6059 str r1, [r3, #4]
8000d92: 8853 ldrh r3, [r2, #2]
8000d94: 3301 adds r3, #1
8000d96: b29b uxth r3, r3
8000d98: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8000d9c: bf88 it hi
8000d9e: 2300 movhi r3, #0
8000da0: 8053 strh r3, [r2, #2]
8000da2: e7ed b.n 8000d80 <USART2_IRQHandler+0x44>
8000da4: 40004400 .word 0x40004400
8000da8: 20000c9d .word 0x20000c9d
8000dac: 20000cb0 .word 0x20000cb0
08000db0 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm>:
8000db0: 4a03 ldr r2, [pc, #12] ; (8000dc0 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm+0x10>)
8000db2: 2300 movs r3, #0
8000db4: 7013 strb r3, [r2, #0]
8000db6: 7053 strb r3, [r2, #1]
8000db8: 4a02 ldr r2, [pc, #8] ; (8000dc4 <_GLOBAL__sub_I__ZN4modm8platform6Usart218initializeBufferedEm+0x14>)
8000dba: 8013 strh r3, [r2, #0]
8000dbc: 8053 strh r3, [r2, #2]
8000dbe: 4770 bx lr
8000dc0: 20000c9d .word 0x20000c9d
8000dc4: 20000cb0 .word 0x20000cb0
08000dc8 <free>:
8000dc8: 4b02 ldr r3, [pc, #8] ; (8000dd4 <free+0xc>)
8000dca: 4601 mov r1, r0
8000dcc: 6818 ldr r0, [r3, #0]
8000dce: f000 b803 b.w 8000dd8 <_free_r>
8000dd2: bf00 nop
8000dd4: 20000c08 .word 0x20000c08
08000dd8 <_free_r>:
8000dd8: b537 push {r0, r1, r2, r4, r5, lr}
8000dda: 2900 cmp r1, #0
8000ddc: d048 beq.n 8000e70 <_free_r+0x98>
8000dde: f851 3c04 ldr.w r3, [r1, #-4]
8000de2: 9001 str r0, [sp, #4]
8000de4: 2b00 cmp r3, #0
8000de6: f1a1 0404 sub.w r4, r1, #4
8000dea: bfb8 it lt
8000dec: 18e4 addlt r4, r4, r3
8000dee: f000 f843 bl 8000e78 <__malloc_lock>
8000df2: 4a20 ldr r2, [pc, #128] ; (8000e74 <_free_r+0x9c>)
8000df4: 9801 ldr r0, [sp, #4]
8000df6: 6813 ldr r3, [r2, #0]
8000df8: 4615 mov r5, r2
8000dfa: b933 cbnz r3, 8000e0a <_free_r+0x32>
8000dfc: 6063 str r3, [r4, #4]
8000dfe: 6014 str r4, [r2, #0]
8000e00: b003 add sp, #12
8000e02: e8bd 4030 ldmia.w sp!, {r4, r5, lr}
8000e06: f000 b83d b.w 8000e84 <__malloc_unlock>
8000e0a: 42a3 cmp r3, r4
8000e0c: d90b bls.n 8000e26 <_free_r+0x4e>
8000e0e: 6821 ldr r1, [r4, #0]
8000e10: 1862 adds r2, r4, r1
8000e12: 4293 cmp r3, r2
8000e14: bf04 itt eq
8000e16: 681a ldreq r2, [r3, #0]
8000e18: 685b ldreq r3, [r3, #4]
8000e1a: 6063 str r3, [r4, #4]
8000e1c: bf04 itt eq
8000e1e: 1852 addeq r2, r2, r1
8000e20: 6022 streq r2, [r4, #0]
8000e22: 602c str r4, [r5, #0]
8000e24: e7ec b.n 8000e00 <_free_r+0x28>
8000e26: 461a mov r2, r3
8000e28: 685b ldr r3, [r3, #4]
8000e2a: b10b cbz r3, 8000e30 <_free_r+0x58>
8000e2c: 42a3 cmp r3, r4
8000e2e: d9fa bls.n 8000e26 <_free_r+0x4e>
8000e30: 6811 ldr r1, [r2, #0]
8000e32: 1855 adds r5, r2, r1
8000e34: 42a5 cmp r5, r4
8000e36: d10b bne.n 8000e50 <_free_r+0x78>
8000e38: 6824 ldr r4, [r4, #0]
8000e3a: 4421 add r1, r4
8000e3c: 1854 adds r4, r2, r1
8000e3e: 42a3 cmp r3, r4
8000e40: 6011 str r1, [r2, #0]
8000e42: d1dd bne.n 8000e00 <_free_r+0x28>
8000e44: 681c ldr r4, [r3, #0]
8000e46: 685b ldr r3, [r3, #4]
8000e48: 6053 str r3, [r2, #4]
8000e4a: 4421 add r1, r4
8000e4c: 6011 str r1, [r2, #0]
8000e4e: e7d7 b.n 8000e00 <_free_r+0x28>
8000e50: d902 bls.n 8000e58 <_free_r+0x80>
8000e52: 230c movs r3, #12
8000e54: 6003 str r3, [r0, #0]
8000e56: e7d3 b.n 8000e00 <_free_r+0x28>
8000e58: 6825 ldr r5, [r4, #0]
8000e5a: 1961 adds r1, r4, r5
8000e5c: 428b cmp r3, r1
8000e5e: bf04 itt eq
8000e60: 6819 ldreq r1, [r3, #0]
8000e62: 685b ldreq r3, [r3, #4]
8000e64: 6063 str r3, [r4, #4]
8000e66: bf04 itt eq
8000e68: 1949 addeq r1, r1, r5
8000e6a: 6021 streq r1, [r4, #0]
8000e6c: 6054 str r4, [r2, #4]
8000e6e: e7c7 b.n 8000e00 <_free_r+0x28>
8000e70: b003 add sp, #12
8000e72: bd30 pop {r4, r5, pc}
8000e74: 200014b8 .word 0x200014b8
08000e78 <__malloc_lock>:
8000e78: 4801 ldr r0, [pc, #4] ; (8000e80 <__malloc_lock+0x8>)
8000e7a: f000 b809 b.w 8000e90 <__retarget_lock_acquire_recursive>
8000e7e: bf00 nop
8000e80: 200014c0 .word 0x200014c0
08000e84 <__malloc_unlock>:
8000e84: 4801 ldr r0, [pc, #4] ; (8000e8c <__malloc_unlock+0x8>)
8000e86: f000 b804 b.w 8000e92 <__retarget_lock_release_recursive>
8000e8a: bf00 nop
8000e8c: 200014c0 .word 0x200014c0
08000e90 <__retarget_lock_acquire_recursive>:
8000e90: 4770 bx lr
08000e92 <__retarget_lock_release_recursive>:
8000e92: 4770 bx lr
Disassembly of section .fastcode:
08000f48 <_ZN4modm8delay_usEm>:
8000f48: b148 cbz r0, 8000f5e <_ZN4modm8delay_usEm+0x16>
8000f4a: 4a05 ldr r2, [pc, #20] ; (8000f60 <__fastcode_load+0x18>)
8000f4c: 4b05 ldr r3, [pc, #20] ; (8000f64 <__fastcode_load+0x1c>)
8000f4e: 8812 ldrh r2, [r2, #0]
8000f50: 6859 ldr r1, [r3, #4]
8000f52: 4350 muls r0, r2
8000f54: 3819 subs r0, #25
8000f56: 685a ldr r2, [r3, #4]
8000f58: 1a52 subs r2, r2, r1
8000f5a: 4282 cmp r2, r0
8000f5c: dbfb blt.n 8000f56 <_ZN4modm8delay_usEm+0xe>
8000f5e: 4770 bx lr
8000f60: 200014ca .word 0x200014ca
8000f64: e0001000 .word 0xe0001000
What do you mean with After enabling <module>modm:build:scons</module>:? The Ubuntu Toolchain starts working if you add this module? Or do you have to call scons twice?
The Ubuntu Toolchain starts working if you add this module?
Yes. I added ~<module>modm:build:scons</module>~ <module>modm:platform:heap</module> to the project.xml file, then ran lbuild build and scons -j4 again.
I added
modm:build:scons to the project.xml file, then ran lbuild build and scons -j4 again.
EXCUSE ME WAT?
I'm also seeing some other weird things like the TLSF implementation being part of both listings, even though that module only gets pulled in via :platform:heap? Something weird is going on here in modm, let me try to reproduce.
Sorry, if miss-copy-pasted <module>modm:platform:scons</module> instead of <module>modm:platform:heap</module> in my issue and comments.
Of course I enabled the heap module.
(Comments above updated)
I'm also seeing some other weird things like the TLSF implementation being part of both listings, even though that module only gets pulled in via :platform:heap?
Both objdumps are from from nucleo_f411re/blink example with added
Can you give me the listing without the heap module? I want to see if anything pulls in srbk.
My suspicion is the linker not doing proper garbage collection of sections coming from inside static libraries. This could also be a configuration error on modm's part.
Can you give me the listing without the heap module?
I updated my comment above and added a listing from the ARM toolchain without heap module enabled.
I want to see if anything pulls in srbk.
Me too, but I did not find it.
The two listings are identical, except for the non-elision of the fastcode section name. modm::delay_us is placed in .fastcode but on F411 this section is placed in Flash, due to the (small) instruction cache making this fast.
So I still believe this is some weird linker issue. I'm not sure how to debug the linker at all.
< /home/user/modm2/build/nucleo_f411re/blink/release/blink.elf: file format elf32-littlearm
---
> ../../../build/nucleo_f411re/blink/release/blink.elf: file format elf32-littlearm
260c260
< 8000450: f000 fd7a bl 8000f48 <__fastcode_load>
---
> 8000450: f000 fd7a bl 8000f48 <_ZN4modm8delay_usEm>
400c400
< 8000592: f000 fcd9 bl 8000f48 <__fastcode_load>
---
> 8000592: f000 fcd9 bl 8000f48 <_ZN4modm8delay_usEm>
404c404
< 800059e: f000 fcd3 bl 8000f48 <__fastcode_load>
---
> 800059e: f000 fcd3 bl 8000f48 <_ZN4modm8delay_usEm>
1380,1381c1380,1381
< 8000f4a: 4a05 ldr r2, [pc, #20] ; (8000f60 <__fastcode_load+0x18>)
< 8000f4c: 4b05 ldr r3, [pc, #20] ; (8000f64 <__fastcode_load+0x1c>)
---
> 8000f4a: 4a05 ldr r2, [pc, #20] ; (8000f60 <_ZN4modm8delay_usEm+0x18>)
> 8000f4c: 4b05 ldr r3, [pc, #20] ; (8000f64 <_ZN4modm8delay_usEm+0x1c>)
This issues was related to the GNU toolchain with GCC 9, therefore probably no longer relevant.