paper_trail icon indicating copy to clipboard operation
paper_trail copied to clipboard

Heap usage with Ubuntus packaged ARM Toolchain

Open rleh opened this issue 5 years ago • 9 comments

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.

rleh avatar Sep 15 '20 12:09 rleh

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)


/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)


/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)


/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

rleh avatar Sep 15 '20 12:09 rleh

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?

salkinium avatar Sep 15 '20 12:09 salkinium

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.

rleh avatar Sep 15 '20 12:09 rleh

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.

salkinium avatar Sep 15 '20 12:09 salkinium

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)

rleh avatar Sep 15 '20 13:09 rleh

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 modm:platform:heap (for better comparison).

rleh avatar Sep 15 '20 13:09 rleh

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.

salkinium avatar Sep 15 '20 13:09 salkinium

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.

rleh avatar Sep 15 '20 13:09 rleh

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>)

salkinium avatar Sep 15 '20 13:09 salkinium

This issues was related to the GNU toolchain with GCC 9, therefore probably no longer relevant.

rleh avatar Mar 12 '23 18:03 rleh