Open
Description
I noticed my runtime performance got significantly worse, I'm trying to update LEDs 60 times per second.
The host system is an M1 MacBook Pro.
It's talking to an rp2040 over serial.
Observations:
2023-06-14
: the update time is around15.4ms
.2023-06-15
: it goes up to around18ms
.- later nightlies: it either stays the same or even goes up to around
20ms
Code
Repo: https://github.com/ForsakenHarmony/serial-ws2812
Optional:
To run:
rustup target add thumbv6m-none-eabi
(optional, installs toolchain and target).cd firmware && cargo run --release
(Flash and run code on the rp2040, this can be left running, but you need to wait for it to finish flashing).cargo run --example example --release
(Run example control software on the host).
After that changing rust-toolchain
to nightly-2023-06-15
and going back to step 1 you should see different timings being printed in the terminal.
Version it worked on
It most recently worked on: nightly-2023-06-14
rustc 1.72.0-nightly (371994e0d 2023-06-13)
binary: rustc
commit-hash: 371994e0d8380600ddda78ca1be937c7fb179b49
commit-date: 2023-06-13
host: aarch64-apple-darwin
release: 1.72.0-nightly
LLVM version: 16.0.5
Version with regression
rustc --version --verbose
:
rustc 1.72.0-nightly (8c74a5d27 2023-06-14)
binary: rustc
commit-hash: 8c74a5d27c644a0f7a22bb2fa8dd3ff8257bc220
commit-date: 2023-06-14
host: aarch64-apple-darwin
release: 1.72.0-nightly
LLVM version: 16.0.5
binaries + dump with patches to see the actual difference
outputs.zip
diff after cleaning up
diff --git a/.bins/2023-06-14/dumped/HardFault_.s b/.bins/2023-06-15/dumped/HardFault_.s
index beca585..f64b2ab 100644
--- a/.bins/2023-06-14/dumped/HardFault_.s
+++ b/.bins/2023-06-15/dumped/HardFault_.s
@@ -1,2 +1,2 @@
b 0x1000 <HardFault_> @ imm = #0x0
-bmi 0x1000 <compiler_builtins::int::specialized_div_rem::u32_div_rem+0x146> @ imm = #0x0
\ No newline at end of file
+bmi 0x1000 <__aeabi_lmul+0x24> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/TIMER_IRQ_0.s b/.bins/2023-06-15/dumped/TIMER_IRQ_0.s
index 1eccfe6..fc69f09 100644
--- a/.bins/2023-06-14/dumped/TIMER_IRQ_0.s
+++ b/.bins/2023-06-15/dumped/TIMER_IRQ_0.s
@@ -1,87 +1,5 @@
-push {r4, r5, r6, r7, lr}
+push {r7, lr}
add r7, sp, #0x0
-sub sp, #0x0
-bl 0x1000 <__primask_r> @ imm = #0x0
-mov r4, r0
-movs r2, #0x0
movs r0, #0x0
-lsls r0, r0, #0x0
-ldr r0, [r0]
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xbc>
-ldrb r1, [r1]
-dmb sy
-adds r6, r0, #0x0
-uxtb r0, r6
-cmp r1, r0
-str r2, [sp]
-bne 0x1000 <TIMER_IRQ_0+0x2a> @ imm = #0x0
-movs r6, #0x0
-b 0x1000 <TIMER_IRQ_0+0x5c> @ imm = #0x0
-ands r4, r2
-ldr r5, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xc0>
-bne 0x1000 <TIMER_IRQ_0+0x4a> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-bne 0x1000 <TIMER_IRQ_0+0x54> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_0+0x3a> @ imm = #0x0
-b 0x1000 <TIMER_IRQ_0+0x54> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_0+0x4a> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xbc>
-strb r6, [r0]
-rsbs r6, r4, #0
-adcs r6, r4
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xc4>
-ldm r0!, {r1, r2}
-ldr r4, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xc8>
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-beq 0x1000 <TIMER_IRQ_0+0x76> @ imm = #0x0
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-bne 0x1000 <TIMER_IRQ_0+0x62> @ imm = #0x0
-subs r0, r5, r1
-sbcs r3, r2
-bhs 0x1000 <TIMER_IRQ_0+0x86> @ imm = #0x0
-mov r0, r4
-subs r0, #0x0
-str r1, [r0]
-ldr r5, [sp]
-b 0x1000 <TIMER_IRQ_0+0xa0> @ imm = #0x0
-subs r0, r4, #0x0
-ldr r5, [sp]
-str r5, [r0]
-movs r0, #0x0
-mvns r0, r0
-ldr r2, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xc4>
-str r0, [r2]
-str r0, [r2, #0x0]
-ldr r1, [r2, #0x0]
-cmp r1, #0x0
-beq 0x1000 <TIMER_IRQ_0+0xa0> @ imm = #0x0
-ldr r0, [r2, #0x0]
-blx r1
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_0+0xb6> @ imm = #0x0
-movs r0, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xbc>
-strb r0, [r1]
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_0+0xc0>
-str r5, [r0]
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_0+0xb6> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-str r5, [r4, #0x0]
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
\ No newline at end of file
+bl 0x1000 <embassy_rp::timer::TimerDriver::check_alarm> @ imm = #0x0
+pop {r7, pc}
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/TIMER_IRQ_1.s b/.bins/2023-06-15/dumped/TIMER_IRQ_1.s
index f9999a1..fc69f09 100644
--- a/.bins/2023-06-14/dumped/TIMER_IRQ_1.s
+++ b/.bins/2023-06-15/dumped/TIMER_IRQ_1.s
@@ -1,89 +1,5 @@
-push {r4, r5, r6, r7, lr}
+push {r7, lr}
add r7, sp, #0x0
-sub sp, #0x0
-bl 0x1000 <__primask_r> @ imm = #0x0
-mov r4, r0
-movs r2, #0x0
movs r0, #0x0
-lsls r0, r0, #0x0
-ldr r0, [r0]
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xc0>
-ldrb r1, [r1]
-dmb sy
-adds r6, r0, #0x0
-uxtb r0, r6
-cmp r1, r0
-str r2, [sp]
-bne 0x1000 <TIMER_IRQ_1+0x2a> @ imm = #0x0
-movs r6, #0x0
-b 0x1000 <TIMER_IRQ_1+0x5c> @ imm = #0x0
-ands r4, r2
-ldr r5, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xc4>
-bne 0x1000 <TIMER_IRQ_1+0x4a> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-bne 0x1000 <TIMER_IRQ_1+0x54> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_1+0x3a> @ imm = #0x0
-b 0x1000 <TIMER_IRQ_1+0x54> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_1+0x4a> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xc0>
-strb r6, [r0]
-rsbs r6, r4, #0
-adcs r6, r4
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xc8>
-ldr r1, [r0, #0x0]
-ldr r2, [r0, #0x0]
-ldr r4, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xcc>
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-beq 0x1000 <TIMER_IRQ_1+0x78> @ imm = #0x0
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-bne 0x1000 <TIMER_IRQ_1+0x64> @ imm = #0x0
-subs r0, r5, r1
-sbcs r3, r2
-bhs 0x1000 <TIMER_IRQ_1+0x86> @ imm = #0x0
-mov r0, r4
-subs r0, #0x0
-str r1, [r0]
-b 0x1000 <TIMER_IRQ_1+0xa0> @ imm = #0x0
-subs r0, r4, #0x0
-movs r1, #0x0
-str r1, [r0]
-movs r0, #0x0
-mvns r0, r0
-ldr r2, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xc8>
-str r0, [r2, #0x0]
-str r0, [r2, #0x0]
-ldr r1, [r2, #0x0]
-cmp r1, #0x0
-beq 0x1000 <TIMER_IRQ_1+0xa0> @ imm = #0x0
-ldr r0, [r2, #0x0]
-blx r1
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_1+0xb8> @ imm = #0x0
-movs r0, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xc0>
-strb r0, [r1]
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_1+0xc4>
-ldr r1, [sp]
-str r1, [r0]
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_1+0xb8> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-movs r0, #0x0
-str r0, [r4, #0x0]
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
\ No newline at end of file
+bl 0x1000 <embassy_rp::timer::TimerDriver::check_alarm> @ imm = #0x0
+pop {r7, pc}
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/TIMER_IRQ_2.s b/.bins/2023-06-15/dumped/TIMER_IRQ_2.s
index 267b4d1..fc69f09 100644
--- a/.bins/2023-06-14/dumped/TIMER_IRQ_2.s
+++ b/.bins/2023-06-15/dumped/TIMER_IRQ_2.s
@@ -1,89 +1,5 @@
-push {r4, r5, r6, r7, lr}
+push {r7, lr}
add r7, sp, #0x0
-sub sp, #0x0
-bl 0x1000 <__primask_r> @ imm = #0x0
-mov r4, r0
-movs r2, #0x0
movs r0, #0x0
-lsls r0, r0, #0x0
-ldr r0, [r0]
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xc0>
-ldrb r1, [r1]
-dmb sy
-adds r6, r0, #0x0
-uxtb r0, r6
-cmp r1, r0
-str r2, [sp]
-bne 0x1000 <TIMER_IRQ_2+0x2a> @ imm = #0x0
-movs r6, #0x0
-b 0x1000 <TIMER_IRQ_2+0x5c> @ imm = #0x0
-ands r4, r2
-ldr r5, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xc4>
-bne 0x1000 <TIMER_IRQ_2+0x4a> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-bne 0x1000 <TIMER_IRQ_2+0x54> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_2+0x3a> @ imm = #0x0
-b 0x1000 <TIMER_IRQ_2+0x54> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_2+0x4a> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xc0>
-strb r6, [r0]
-rsbs r6, r4, #0
-adcs r6, r4
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xc8>
-ldr r1, [r0, #0x0]
-ldr r2, [r0, #0x0]
-ldr r4, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xcc>
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-beq 0x1000 <TIMER_IRQ_2+0x78> @ imm = #0x0
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-bne 0x1000 <TIMER_IRQ_2+0x64> @ imm = #0x0
-subs r0, r5, r1
-sbcs r3, r2
-bhs 0x1000 <TIMER_IRQ_2+0x86> @ imm = #0x0
-mov r0, r4
-subs r0, #0x0
-str r1, [r0]
-b 0x1000 <TIMER_IRQ_2+0xa0> @ imm = #0x0
-subs r0, r4, #0x0
-movs r1, #0x0
-str r1, [r0]
-movs r0, #0x0
-mvns r0, r0
-ldr r2, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xc8>
-str r0, [r2, #0x0]
-str r0, [r2, #0x0]
-ldr r1, [r2, #0x0]
-cmp r1, #0x0
-beq 0x1000 <TIMER_IRQ_2+0xa0> @ imm = #0x0
-ldr r0, [r2, #0x0]
-blx r1
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_2+0xb8> @ imm = #0x0
-movs r0, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xc0>
-strb r0, [r1]
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_2+0xc4>
-ldr r1, [sp]
-str r1, [r0]
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_2+0xb8> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-movs r0, #0x0
-str r0, [r4, #0x0]
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
\ No newline at end of file
+bl 0x1000 <embassy_rp::timer::TimerDriver::check_alarm> @ imm = #0x0
+pop {r7, pc}
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/TIMER_IRQ_3.s b/.bins/2023-06-15/dumped/TIMER_IRQ_3.s
index 34f9d15..fc69f09 100644
--- a/.bins/2023-06-14/dumped/TIMER_IRQ_3.s
+++ b/.bins/2023-06-15/dumped/TIMER_IRQ_3.s
@@ -1,89 +1,5 @@
-push {r4, r5, r6, r7, lr}
+push {r7, lr}
add r7, sp, #0x0
-sub sp, #0x0
-bl 0x1000 <__primask_r> @ imm = #0x0
-mov r4, r0
-movs r2, #0x0
movs r0, #0x0
-lsls r0, r0, #0x0
-ldr r0, [r0]
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xc0>
-ldrb r1, [r1]
-dmb sy
-adds r6, r0, #0x0
-uxtb r0, r6
-cmp r1, r0
-str r2, [sp]
-bne 0x1000 <TIMER_IRQ_3+0x2a> @ imm = #0x0
-movs r6, #0x0
-b 0x1000 <TIMER_IRQ_3+0x5c> @ imm = #0x0
-ands r4, r2
-ldr r5, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xc4>
-bne 0x1000 <TIMER_IRQ_3+0x4a> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-bne 0x1000 <TIMER_IRQ_3+0x54> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_3+0x3a> @ imm = #0x0
-b 0x1000 <TIMER_IRQ_3+0x54> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <TIMER_IRQ_3+0x4a> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xc0>
-strb r6, [r0]
-rsbs r6, r4, #0
-adcs r6, r4
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xc8>
-ldr r1, [r0, #0x0]
-ldr r2, [r0, #0x0]
-ldr r4, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xcc>
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-beq 0x1000 <TIMER_IRQ_3+0x78> @ imm = #0x0
-ldr r3, [r4]
-ldr r5, [r4, #0x0]
-ldr r0, [r4]
-cmp r3, r0
-bne 0x1000 <TIMER_IRQ_3+0x64> @ imm = #0x0
-subs r0, r5, r1
-sbcs r3, r2
-bhs 0x1000 <TIMER_IRQ_3+0x86> @ imm = #0x0
-mov r0, r4
-subs r0, #0x0
-str r1, [r0]
-b 0x1000 <TIMER_IRQ_3+0xa0> @ imm = #0x0
-subs r0, r4, #0x0
-movs r1, #0x0
-str r1, [r0]
-movs r0, #0x0
-mvns r0, r0
-ldr r2, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xc8>
-str r0, [r2, #0x0]
-str r0, [r2, #0x0]
-ldr r1, [r2, #0x0]
-cmp r1, #0x0
-beq 0x1000 <TIMER_IRQ_3+0xa0> @ imm = #0x0
-ldr r0, [r2, #0x0]
-blx r1
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_3+0xb8> @ imm = #0x0
-movs r0, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xc0>
-strb r0, [r1]
-ldr r0, [pc, #0x0] @ 0x1000 <TIMER_IRQ_3+0xc4>
-ldr r1, [sp]
-str r1, [r0]
-cmp r6, #0x0
-beq 0x1000 <TIMER_IRQ_3+0xb8> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-movs r0, #0x0
-str r0, [r4, #0x0]
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
\ No newline at end of file
+bl 0x1000 <embassy_rp::timer::TimerDriver::check_alarm> @ imm = #0x0
+pop {r7, pc}
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/_<defmt_rtt::Logger as defmt::traits::Logger>/release.s b/.bins/2023-06-15/dumped/_<defmt_rtt::Logger as defmt::traits::Logger>/release.s
new file mode 100644
index 0000000..096d4f2
--- /dev/null
+++ b/.bins/2023-06-15/dumped/_<defmt_rtt::Logger as defmt::traits::Logger>/release.s
@@ -0,0 +1,92 @@
+push {r4, r5, r6, r7, lr}
+add r7, sp, #0x0
+sub sp, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xbc>
+ldrb r0, [r2, #0x0]
+cmp r0, #0x0
+beq 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x74> @ imm = #0x0
+cmp r0, #0x0
+bhs 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x34> @ imm = #0x0
+movs r1, #0x0
+mvns r1, r1
+lsls r1, r0
+ldrb r0, [r2, #0x0]
+orrs r0, r1
+movs r1, #0x0
+ands r1, r0
+add r0, sp, #0x0
+strb r1, [r0]
+ldr r4, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc0>
+ldr r0, [r4, #0x0]
+movs r1, #0x0
+ands r1, r0
+cmp r1, #0x0
+beq 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x4e> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc8>
+b 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x50> @ imm = #0x0
+adds r0, #0x0
+movs r1, #0x0
+orrs r1, r0
+mov r0, sp
+strb r1, [r0]
+ldr r4, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc0>
+ldr r0, [r4, #0x0]
+movs r1, #0x0
+ands r1, r0
+cmp r1, #0x0
+beq 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x60> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc8>
+b 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x62> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc4>
+adds r4, #0x0
+add r1, sp, #0x0
+movs r2, #0x0
+mov r0, r4
+blx r5
+cmp r0, #0x0
+beq 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x52> @ imm = #0x0
+b 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x70> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc4>
+adds r4, #0x0
+mov r1, sp
+movs r2, #0x0
+mov r0, r4
+blx r5
+cmp r0, #0x0
+beq 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x64> @ imm = #0x0
+cmp r0, #0x0
+bne 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xb0> @ imm = #0x0
+add r0, sp, #0x0
+movs r6, #0x0
+strb r6, [r0]
+ldr r4, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc0>
+ldr r0, [r4, #0x0]
+movs r1, #0x0
+ands r1, r0
+cmp r1, #0x0
+beq 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x8a> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc8>
+b 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x8c> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xc4>
+adds r4, #0x0
+add r1, sp, #0x0
+movs r2, #0x0
+mov r0, r4
+blx r5
+cmp r0, #0x0
+beq 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0x8e> @ imm = #0x0
+cmp r0, #0x0
+bne 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xb0> @ imm = #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xbc>
+strb r6, [r0, #0x0]
+strb r6, [r0, #0x0]
+strb r6, [r0]
+ldrb r0, [r0, #0x0]
+bl 0x1000 <_critical_section_1_0_release> @ imm = #0x0
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+movs r1, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release+0xcc>
+bl 0x1000 <core::slice::index::slice_start_index_len_fail> @ imm = #0x0
+trap
+mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/_<embassy_rp::timer::TimerDriver as embassy_time::driver::Driver>/set_alarm.s b/.bins/2023-06-15/dumped/_<embassy_rp::timer::TimerDriver as embassy_time::driver::Driver>/set_alarm.s
new file mode 100644
index 0000000..9a85b31
--- /dev/null
+++ b/.bins/2023-06-15/dumped/_<embassy_rp::timer::TimerDriver as embassy_time::driver::Driver>/set_alarm.s
@@ -0,0 +1,123 @@
+push {r4, r5, r6, r7, lr}
+add r7, sp, #0x0
+sub sp, #0x0
+mov r6, r3
+str r2, [sp, #0x0]
+str r0, [sp, #0x0]
+add r0, sp, #0x0
+strb r1, [r0]
+bl 0x1000 <embassy_time::driver::AlarmHandle::id> @ imm = #0x0
+mov r4, r0
+bl 0x1000 <__primask_r> @ imm = #0x0
+mov r5, r0
+movs r2, #0x0
+movs r0, #0x0
+lsls r0, r0, #0x0
+ldr r0, [r0]
+ldr r1, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x108>
+ldrb r1, [r1]
+dmb sy
+str r4, [sp]
+uxtb r4, r4
+adds r3, r0, #0x0
+uxtb r0, r3
+cmp r1, r0
+str r2, [sp, #0x0]
+str r6, [sp, #0x0]
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x40> @ imm = #0x0
+movs r0, #0x0
+b 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x78> @ imm = #0x0
+str r3, [sp, #0x0]
+ands r5, r2
+ldr r6, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x10c>
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x62> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x6c> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x52> @ imm = #0x0
+b 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x6c> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x62> @ imm = #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x108>
+ldr r1, [sp, #0x0]
+strb r1, [r0]
+rsbs r0, r5, #0
+adcs r0, r5
+ldr r6, [sp, #0x0]
+cmp r4, #0x0
+bhs 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0xfc> @ imm = #0x0
+str r0, [sp, #0x0]
+lsls r1, r4, #0x0
+ldr r5, [sp, #0x0]
+ldr r0, [sp, #0x0]
+str r5, [r0, r1]
+adds r1, r0, r1
+str r6, [r1, #0x0]
+lsls r3, r4, #0x0
+adds r3, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x114>
+adds r3, r3, r2
+subs r3, #0x0
+str r5, [r3]
+ldr r4, [r2]
+ldr r5, [r2, #0x0]
+ldr r3, [r2]
+cmp r4, r3
+beq 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0xaa> @ imm = #0x0
+ldr r4, [r2]
+ldr r5, [r2, #0x0]
+ldr r3, [r2]
+cmp r4, r3
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x96> @ imm = #0x0
+ldr r3, [sp, #0x0]
+subs r3, r5, r3
+mov r3, r4
+sbcs r3, r6
+blo 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0xd0> @ imm = #0x0
+movs r3, #0x0
+ldr r0, [sp]
+ands r0, r3
+ldr r3, [sp, #0x0]
+lsls r3, r0
+movs r6, #0x0
+ands r6, r3
+subs r2, r2, #0x0
+str r6, [r2]
+ldr r6, [sp, #0x0]
+movs r2, #0x0
+mvns r2, r2
+str r2, [r1]
+str r2, [r1, #0x0]
+ldr r0, [sp, #0x0]
+cmp r0, #0x0
+ldr r2, [sp, #0x0]
+beq 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0xec> @ imm = #0x0
+movs r1, #0x0
+ldr r3, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x108>
+strb r1, [r3]
+ldr r1, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x10c>
+str r2, [r1]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0xec> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+ldr r2, [sp, #0x0]
+ldr r0, [sp, #0x0]
+subs r0, r5, r0
+sbcs r4, r6
+blo 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0xf6> @ imm = #0x0
+movs r2, #0x0
+mov r0, r2
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+movs r1, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm+0x110>
+mov r0, r4
+bl 0x1000 <core::panicking::panic_bounds_check> @ imm = #0x0
+trap
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/_<embassy_rp::timer::TimerDriver as embassy_time::driver::Driver>/set_alarm_callback.s b/.bins/2023-06-15/dumped/_<embassy_rp::timer::TimerDriver as embassy_time::driver::Driver>/set_alarm_callback.s
new file mode 100644
index 0000000..adb67b3
--- /dev/null
+++ b/.bins/2023-06-15/dumped/_<embassy_rp::timer::TimerDriver as embassy_time::driver::Driver>/set_alarm_callback.s
@@ -0,0 +1,79 @@
+push {r4, r5, r6, r7, lr}
+add r7, sp, #0x0
+sub sp, #0x0
+add r4, sp, #0x0
+stm r4!, {r0, r2, r3}
+add r0, sp, #0x0
+strb r1, [r0]
+bl 0x1000 <embassy_time::driver::AlarmHandle::id> @ imm = #0x0
+mov r5, r0
+bl 0x1000 <__primask_r> @ imm = #0x0
+movs r1, #0x0
+lsls r1, r1, #0x0
+ldr r2, [r1]
+ldr r1, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0xb0>
+ldrb r1, [r1]
+dmb sy
+uxtb r5, r5
+adds r4, r2, #0x0
+uxtb r2, r4
+cmp r1, r2
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0x46> @ imm = #0x0
+cmp r5, #0x0
+bhi 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0xa2> @ imm = #0x0
+lsls r0, r5, #0x0
+ldr r1, [sp, #0x0]
+adds r0, r1, r0
+ldr r1, [sp, #0x0]
+str r1, [r0, #0x0]
+ldr r1, [sp, #0x0]
+str r1, [r0, #0x0]
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+movs r1, #0x0
+str r1, [sp, #0x0]
+ands r0, r1
+str r0, [sp, #0x0]
+ldr r6, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0xb4>
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0x6c> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0x76> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0x5c> @ imm = #0x0
+b 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0x76> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0x6c> @ imm = #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0xb0>
+strb r4, [r2]
+cmp r5, #0x0
+bhs 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0xa2> @ imm = #0x0
+lsls r0, r5, #0x0
+ldr r1, [sp, #0x0]
+adds r0, r1, r0
+ldr r1, [sp, #0x0]
+str r1, [r0, #0x0]
+ldr r1, [sp, #0x0]
+str r1, [r0, #0x0]
+movs r0, #0x0
+strb r0, [r2]
+ldr r0, [sp, #0x0]
+str r0, [r6]
+ldr r0, [sp, #0x0]
+cmp r0, #0x0
+bne 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0x9e> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+movs r1, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback+0xb8>
+mov r0, r5
+bl 0x1000 <core::panicking::panic_bounds_check> @ imm = #0x0
+trap
+mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_<core::future::poll_fn::PollFn<F> as core::future::future::Future>/poll.s b/.bins/2023-06-15/dumped/_<embassy_rp::usb::Bus<T> as embassy_usb_driver::Bus>/poll/_{{closure}}.s
similarity index 70%
rename from .bins/2023-06-14/dumped/_<core::future::poll_fn::PollFn<F> as core::future::future::Future>/poll.s
rename to .bins/2023-06-15/dumped/_<embassy_rp::usb::Bus<T> as embassy_usb_driver::Bus>/poll/_{{closure}}.s
index 92c4c44..1eae907 100644
--- a/.bins/2023-06-14/dumped/_<core::future::poll_fn::PollFn<F> as core::future::future::Future>/poll.s
+++ b/.bins/2023-06-15/dumped/_<embassy_rp::usb::Bus<T> as embassy_usb_driver::Bus>/poll/_{{closure}}.s
@@ -1,266 +1,293 @@
-push {r4, r5, r7, lr}
+push {r4, r5, r6, r7, lr}
add r7, sp, #0x0
-ldr r4, [r0]
-ldr r1, [r1]
-ldr r0, [pc, #0x0] @ 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x294>
+sub sp, #0x0
+mov r4, r0
+ldrb r0, [r0, #0x0]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x18> @ imm = #0x0
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x14> @ imm = #0x0
+b 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2c0> @ imm = #0x0
+ldr r6, [r4, #0x0]
+b 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x1c> @ imm = #0x0
+ldr r6, [r4]
+str r6, [r4, #0x0]
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2d4>
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::register> @ imm = #0x0
movs r0, #0x0
-ldrb r0, [r4, r0]
+ldrb r0, [r6, r0]
cmp r0, #0x0
-beq 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x38> @ imm = #0x0
-movs r4, #0x0
+beq 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x52> @ imm = #0x0
+movs r5, #0x0
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::regs> @ imm = #0x0
ldr r1, [r0, #0x0]
lsls r2, r1, #0x0
-bmi 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x42> @ imm = #0x0
+bmi 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x60> @ imm = #0x0
lsls r2, r1, #0x0
-bmi 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x4a> @ imm = #0x0
+bmi 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x6c> @ imm = #0x0
lsls r1, r1, #0x0
-bpl 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x2c> @ imm = #0x0
-b 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x28a> @ imm = #0x0
+bpl 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x40> @ imm = #0x0
+b 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2b2> @ imm = #0x0
movs r1, #0x0
lsls r1, r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x2a4>
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2e4>
str r1, [r0, r2]
+movs r5, #0x0
movs r0, #0x0
-pop {r4, r5, r7, pc}
-adds r4, #0x0
-movs r0, #0x0
-strb r0, [r4]
+strb r5, [r4, #0x0]
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+adds r6, #0x0
+movs r5, #0x0
+strb r5, [r6]
movs r0, #0x0
-pop {r4, r5, r7, pc}
-lsls r1, r4, #0x0
+strb r5, [r4, #0x0]
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+lsls r1, r5, #0x0
str r1, [r0, #0x0]
movs r0, #0x0
-pop {r4, r5, r7, pc}
+strb r5, [r4, #0x0]
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
movs r1, #0x0
lsls r1, r1, #0x0
str r1, [r0, #0x0]
-movs r4, #0x0
-mvns r1, r4
+movs r2, #0x0
+str r2, [sp]
+mvns r1, r2
str r1, [r0, #0x0]
-str r4, [r0]
+str r2, [r0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ldr r5, [pc, #0x0] @ 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x298>
-ands r1, r5
+ldr r6, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2d8>
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r0, #0x0]
-ands r1, r5
+ands r1, r6
str r1, [r0, #0x0]
-ldr r5, [pc, #0x0] @ 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x29c>
-mov r0, r5
+ldr r6, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2dc>
+mov r0, r6
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-adds r5, #0x0
-mov r0, r5
+adds r6, #0x0
+mov r0, r6
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-ldr r5, [pc, #0x0] @ 0x1000 <_$LT$core..future..poll_fn..PollFn$LT$F$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x2a0>
-mov r0, r5
+ldr r6, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2e0>
+mov r0, r6
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r5
+mov r0, r6
adds r0, #0x0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-adds r5, #0x0
-mov r0, r5
+adds r6, #0x0
+mov r0, r6
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake> @ imm = #0x0
-mov r0, r4
-pop {r4, r5, r7, pc}
+ldr r0, [sp]
+strb r5, [r4, #0x0]
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
movs r1, #0x0
str r1, [r0, #0x0]
-mov r0, r4
-pop {r4, r5, r7, pc}
-mov r8, r8
\ No newline at end of file
+movs r0, #0x0
+mov r5, r0
+strb r5, [r4, #0x0]
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2cc>
+movs r1, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::poll::_$u7b$$u7b$closure$u7d$$u7d$+0x2d0>
+bl 0x1000 <core::panicking::panic> @ imm = #0x0
+trap
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_<embassy_rp::usb::Out as embassy_rp::usb::Dir>/dir.s b/.bins/2023-06-15/dumped/_<embassy_rp::usb::Out as embassy_rp::usb::Dir>/dir.s
index 405b409..df5797d 100644
--- a/.bins/2023-06-14/dumped/_<embassy_rp::usb::Out as embassy_rp::usb::Dir>/dir.s
+++ b/.bins/2023-06-15/dumped/_<embassy_rp::usb::Out as embassy_rp::usb::Dir>/dir.s
@@ -1,3 +1,3 @@
movs r0, #0x0
bx lr
-bmi 0x1000 <_$LT$embassy_rp..config..Config$u20$as$u20$core..default..Default$GT$::default+0x26> @ imm = #0x0
\ No newline at end of file
+bmi 0x1000 <_$LT$embassy_usb..descriptor_reader..DescriptorIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next+0x1c> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_<embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex as embassy_sync::blocking_mutex::raw::RawMutex>/lock.s b/.bins/2023-06-14/dumped/_<embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex as embassy_sync::blocking_mutex::raw::RawMutex>/lock.s
deleted file mode 100644
index 4c38fc3..0000000
--- a/.bins/2023-06-14/dumped/_<embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex as embassy_sync::blocking_mutex::raw::RawMutex>/lock.s
+++ /dev/null
@@ -1,75 +0,0 @@
-push {r4, r5, r6, r7, lr}
-add r7, sp, #0x0
-sub sp, #0x0
-str r2, [sp, #0x0]
-mov r5, r1
-bl 0x1000 <_critical_section_1_0_acquire> @ imm = #0x0
-ldr r1, [r5]
-cmp r1, #0x0
-bne 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x8e> @ imm = #0x0
-str r0, [sp, #0x0]
-movs r0, #0x0
-str r0, [sp, #0x0]
-mvns r0, r0
-mov r4, r5
-stm r4!, {r0}
-mov r6, r4
-adds r6, #0x0
-ldrb r0, [r4, #0x0]
-cmp r0, #0x0
-beq 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x42> @ imm = #0x0
-mov r0, r5
-adds r0, #0x0
-bl 0x1000 <embassy_sync::waitqueue::waker_registration::WakerRegistration::wake> @ imm = #0x0
-ldrb r0, [r6]
-rsbs r1, r0, #0
-adcs r1, r0
-ldr r3, [r5, #0x0]
-ldr r2, [r5, #0x0]
-cmp r3, r2
-beq 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x4c> @ imm = #0x0
-b 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x64> @ imm = #0x0
-movs r1, #0x0
-ldr r3, [r5, #0x0]
-ldr r2, [r5, #0x0]
-cmp r3, r2
-bne 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x64> @ imm = #0x0
-cmp r1, #0x0
-beq 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x64> @ imm = #0x0
-ldr r0, [sp, #0x0]
-cmp r0, #0x0
-beq 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x5e> @ imm = #0x0
-ldr r1, [r0]
-mov r0, r4
-bl 0x1000 <embassy_sync::waitqueue::waker_registration::WakerRegistration::register> @ imm = #0x0
-ldr r0, [sp, #0x0]
-ldr r4, [sp, #0x0]
-b 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x7e> @ imm = #0x0
-mov r1, r5
-adds r1, #0x0
-ldr r0, [sp, #0x0]
-strb r0, [r6]
-cmp r3, #0x0
-bne 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x74> @ imm = #0x0
-mov r2, r3
-b 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0x76> @ imm = #0x0
-adds r2, r3, #0x0
-ldr r0, [sp, #0x0]
-str r2, [r5, #0x0]
-lsls r2, r3, #0x0
-ldr r4, [r1, r2]
-ldr r1, [r5]
-adds r1, r1, #0x0
-str r1, [r5]
-bl 0x1000 <_critical_section_1_0_release> @ imm = #0x0
-mov r0, r4
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
-ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0xa0>
-str r0, [sp]
-ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0xa4>
-movs r1, #0x0
-add r2, sp, #0x0
-ldr r3, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..blocking_mutex..raw..CriticalSectionRawMutex$u20$as$u20$embassy_sync..blocking_mutex..raw..RawMutex$GT$::lock+0xa8>
-bl 0x1000 <core::result::unwrap_failed> @ imm = #0x0
-trap
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/_<embassy_sync::channel::RecvFuture<M,T,_> as core::future::future::Future>/poll.s b/.bins/2023-06-15/dumped/_<embassy_sync::channel::RecvFuture<M,T,_> as core::future::future::Future>/poll.s
new file mode 100644
index 0000000..bb9589f
--- /dev/null
+++ b/.bins/2023-06-15/dumped/_<embassy_sync::channel::RecvFuture<M,T,_> as core::future::future::Future>/poll.s
@@ -0,0 +1,73 @@
+push {r4, r5, r6, r7, lr}
+add r7, sp, #0x0
+sub sp, #0x0
+str r1, [sp, #0x0]
+ldr r6, [r0]
+bl 0x1000 <_critical_section_1_0_acquire> @ imm = #0x0
+ldr r1, [r6]
+cmp r1, #0x0
+bne 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x8a> @ imm = #0x0
+str r0, [sp, #0x0]
+movs r0, #0x0
+str r0, [sp, #0x0]
+mvns r0, r0
+mov r4, r6
+stm r4!, {r0}
+mov r5, r4
+adds r5, #0x0
+ldrb r0, [r4, #0x0]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x42> @ imm = #0x0
+mov r0, r6
+adds r0, #0x0
+bl 0x1000 <embassy_sync::waitqueue::waker_registration::WakerRegistration::wake> @ imm = #0x0
+ldrb r0, [r5]
+rsbs r1, r0, #0
+adcs r1, r0
+ldr r3, [r6, #0x0]
+ldr r2, [r6, #0x0]
+cmp r3, r2
+beq 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x4c> @ imm = #0x0
+b 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x60> @ imm = #0x0
+movs r1, #0x0
+ldr r3, [r6, #0x0]
+ldr r2, [r6, #0x0]
+cmp r3, r2
+bne 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x60> @ imm = #0x0
+cmp r1, #0x0
+beq 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x60> @ imm = #0x0
+ldr r0, [sp, #0x0]
+ldr r1, [r0]
+mov r0, r4
+bl 0x1000 <embassy_sync::waitqueue::waker_registration::WakerRegistration::register> @ imm = #0x0
+ldr r0, [sp, #0x0]
+ldr r4, [sp, #0x0]
+b 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x7a> @ imm = #0x0
+mov r1, r6
+adds r1, #0x0
+ldr r0, [sp, #0x0]
+strb r0, [r5]
+cmp r3, #0x0
+bne 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x70> @ imm = #0x0
+mov r2, r3
+b 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x72> @ imm = #0x0
+adds r2, r3, #0x0
+ldr r0, [sp, #0x0]
+str r2, [r6, #0x0]
+lsls r2, r3, #0x0
+ldr r4, [r1, r2]
+ldr r1, [r6]
+adds r1, r1, #0x0
+str r1, [r6]
+bl 0x1000 <_critical_section_1_0_release> @ imm = #0x0
+mov r0, r4
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x9c>
+str r0, [sp]
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xa0>
+movs r1, #0x0
+add r2, sp, #0x0
+ldr r3, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..channel..RecvFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xa4>
+bl 0x1000 <core::result::unwrap_failed> @ imm = #0x0
+trap
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/_<embassy_sync::channel::SendFuture<M,T,_> as core::future::future::Future>/poll.s b/.bins/2023-06-15/dumped/_<embassy_sync::channel::SendFuture<M,T,_> as core::future::future::Future>/poll.s
new file mode 100644
index 0000000..2cda2d8
--- /dev/null
+++ b/.bins/2023-06-15/dumped/_<embassy_sync::channel::SendFuture<M,T,_> as core::future::future::Future>/poll.s
@@ -0,0 +1,76 @@
+push {r4, r5, r6, r7, lr}
+add r7, sp, #0x0
+sub sp, #0x0
+str r1, [sp, #0x0]
+mov r4, r0
+ldr r0, [r0, #0x0]
+movs r5, #0x0
+str r5, [r4, #0x0]
+str r0, [sp, #0x0]
+cmp r0, #0x0
+beq 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x8c> @ imm = #0x0
+ldr r6, [r4]
+ldr r0, [r4, #0x0]
+str r0, [sp, #0x0]
+bl 0x1000 <_critical_section_1_0_acquire> @ imm = #0x0
+ldr r1, [r6]
+cmp r1, #0x0
+bne 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x92> @ imm = #0x0
+mvns r1, r5
+str r1, [r6]
+movs r1, #0x0
+ldrb r1, [r6, r1]
+cmp r1, #0x0
+str r0, [sp, #0x0]
+beq 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x44> @ imm = #0x0
+ldr r0, [sp, #0x0]
+ldr r1, [r0]
+mov r0, r6
+adds r0, #0x0
+bl 0x1000 <embassy_sync::waitqueue::waker_registration::WakerRegistration::register> @ imm = #0x0
+ldr r5, [sp, #0x0]
+b 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x70> @ imm = #0x0
+ldr r1, [r6, #0x0]
+lsls r1, r1, #0x0
+adds r1, r6, r1
+ldr r2, [sp, #0x0]
+str r2, [r1, #0x0]
+ldr r2, [sp, #0x0]
+str r2, [r1, #0x0]
+ldr r2, [r6, #0x0]
+cmp r2, #0x0
+beq 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x5a> @ imm = #0x0
+adds r2, r2, #0x0
+str r2, [r6, #0x0]
+ldr r1, [r6, #0x0]
+cmp r1, r2
+bne 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x6a> @ imm = #0x0
+mov r0, r6
+adds r0, #0x0
+movs r1, #0x0
+strb r1, [r0]
+adds r0, r6, #0x0
+bl 0x1000 <embassy_sync::waitqueue::waker_registration::WakerRegistration::wake> @ imm = #0x0
+ldr r0, [r6]
+adds r0, r0, #0x0
+str r0, [r6]
+ldr r0, [sp, #0x0]
+bl 0x1000 <_critical_section_1_0_release> @ imm = #0x0
+cmp r5, #0x0
+beq 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x82> @ imm = #0x0
+str r5, [r4, #0x0]
+subs r0, r5, #0x0
+sbcs r5, r0
+mov r0, r5
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+bl 0x1000 <_defmt_panic> @ imm = #0x0
+trap
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xa4>
+str r0, [sp]
+ldr r0, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xa8>
+movs r1, #0x0
+add r2, sp, #0x0
+ldr r3, [pc, #0x0] @ 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xac>
+bl 0x1000 <core::result::unwrap_failed> @ imm = #0x0
+trap
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/_<futures_util::future::join::Join<Fut1,Fut2> as core::future::future::Future>/poll.s b/.bins/2023-06-15/dumped/_<futures_util::future::join::Join<Fut1,Fut2> as core::future::future::Future>/poll.s
new file mode 100644
index 0000000..c7c4a6f
--- /dev/null
+++ b/.bins/2023-06-15/dumped/_<futures_util::future::join::Join<Fut1,Fut2> as core::future::future::Future>/poll.s
@@ -0,0 +1,85 @@
+push {r4, r5, r6, r7, lr}
+add r7, sp, #0x0
+sub sp, #0x0
+mov r4, r1
+mov r5, r0
+ldr r1, [pc, #0x0] @ 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x17c>
+ldrb r0, [r0, r1]
+subs r2, r0, #0x0
+uxtb r2, r2
+movs r3, #0x0
+cmp r2, #0x0
+str r3, [sp, #0x0]
+blo 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x1e> @ imm = #0x0
+mov r2, r3
+b 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x20> @ imm = #0x0
+adds r2, r2, #0x0
+ldr r3, [pc, #0x0] @ 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x180>
+adds r3, r5, r3
+str r3, [sp, #0x0]
+adds r1, r5, r1
+str r1, [sp, #0x0]
+movs r1, #0x0
+str r1, [sp, #0x0]
+cmp r2, #0x0
+str r5, [sp, #0x0]
+beq 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x40> @ imm = #0x0
+cmp r2, #0x0
+ldr r2, [sp, #0x0]
+bne 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x3e> @ imm = #0x0
+bl 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xa18> @ imm = #0x0
+b 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x268> @ imm = #0x0
+ldr r1, [pc, #0x0] @ 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x184>
+adds r1, r5, r1
+str r1, [sp, #0x0]
+ldr r1, [pc, #0x0] @ 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x188>
+adds r1, r5, r1
+str r1, [sp, #0x0]
+movs r1, #0x0
+lsls r1, r1, #0x0
+adds r2, r5, r1
+movs r1, #0x0
+lsls r1, r1, #0x0
+adds r1, r5, r1
+str r1, [sp, #0x0]
+movs r1, #0x0
+lsls r1, r1, #0x0
+adds r1, r5, r1
+str r1, [sp, #0x0]
+ldr r1, [r4]
+str r1, [sp, #0x0]
+movs r3, #0x0
+lsls r1, r3, #0x0
+str r1, [sp, #0x0]
+lsls r1, r3, #0x0
+str r1, [sp, #0x0]
+lsls r1, r3, #0x0
+str r1, [sp, #0x0]
+movs r1, #0x0
+str r1, [sp, #0x0]
+lsls r1, r1, #0x0
+str r1, [sp, #0x0]
+movs r1, #0x0
+lsls r1, r1, #0x0
+str r1, [sp, #0x0]
+str r3, [sp, #0x0]
+lsls r1, r3, #0x0
+str r1, [sp, #0x0]
+cmp r0, #0x0
+str r4, [sp, #0x0]
+beq 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x11c> @ imm = #0x0
+ldrb r0, [r2]
+cmp r0, #0x0
+beq 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x126> @ imm = #0x0
+cmp r0, #0x0
+bne 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x12e> @ imm = #0x0
+mov r0, r2
+adds r0, #0x0
+str r0, [sp, #0x0]
+ldrb r0, [r2, #0x0]
+lsls r0, r0, #0x0
+mov r8, r8
+add r0, pc
+ldrh r0, [r0, #0x0]
+lsls r0, r0, #0x0
+add pc, r0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_<futures_util::future::maybe_done::MaybeDone<Fut> as core::future::future::Future>/poll.s b/.bins/2023-06-14/dumped/_<futures_util::future::maybe_done::MaybeDone<Fut> as core::future::future::Future>/poll.s
deleted file mode 100644
index d500796..0000000
--- a/.bins/2023-06-14/dumped/_<futures_util::future::maybe_done::MaybeDone<Fut> as core::future::future::Future>/poll.s
+++ /dev/null
@@ -1,72 +0,0 @@
-push {r4, r5, r6, r7, lr}
-add r7, sp, #0x0
-sub sp, #0x0
-mov r4, r0
-movs r0, #0x0
-ldrb r3, [r4, r0]
-subs r0, r3, #0x0
-uxtb r2, r0
-movs r0, #0x0
-cmp r2, #0x0
-blo 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x26> @ imm = #0x0
-mov r2, r0
-cmp r2, #0x0
-beq 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x2c> @ imm = #0x0
-cmp r2, #0x0
-beq 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x22> @ imm = #0x0
-b 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x1fc> @ imm = #0x0
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
-adds r2, r2, #0x0
-cmp r2, #0x0
-bne 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x1c> @ imm = #0x0
-mov r5, r4
-adds r5, #0x0
-mov r0, r4
-adds r0, #0x0
-str r0, [sp, #0x0]
-mov r0, r4
-adds r0, #0x0
-str r0, [sp, #0x0]
-mov r0, r4
-adds r0, #0x0
-str r0, [sp, #0x0]
-movs r2, #0x0
-lsls r0, r2, #0x0
-str r0, [sp, #0x0]
-lsls r0, r2, #0x0
-str r0, [sp, #0x0]
-lsls r0, r2, #0x0
-str r0, [sp, #0x0]
-movs r0, #0x0
-str r0, [sp]
-lsls r0, r0, #0x0
-str r0, [sp, #0x0]
-movs r0, #0x0
-lsls r0, r0, #0x0
-str r0, [sp, #0x0]
-str r2, [sp, #0x0]
-lsls r0, r2, #0x0
-str r0, [sp, #0x0]
-cmp r3, #0x0
-str r4, [sp, #0x0]
-str r1, [sp, #0x0]
-str r5, [sp, #0x0]
-beq 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xac> @ imm = #0x0
-ldrb r0, [r4, #0x0]
-mov r1, r4
-adds r1, #0x0
-cmp r0, #0x0
-str r1, [sp, #0x0]
-beq 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xba> @ imm = #0x0
-cmp r0, #0x0
-bne 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0xc0> @ imm = #0x0
-mov r0, r4
-adds r0, #0x0
-str r0, [sp, #0x0]
-ldrb r0, [r4, #0x0]
-lsls r0, r0, #0x0
-add r0, pc
-ldrh r0, [r0, #0x0]
-lsls r0, r0, #0x0
-add pc, r0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/__pre_init.s b/.bins/2023-06-15/dumped/__pre_init.s
index 530d6ba..cc81151 100644
--- a/.bins/2023-06-14/dumped/__pre_init.s
+++ b/.bins/2023-06-15/dumped/__pre_init.s
@@ -1 +1,2 @@
-bx lr
\ No newline at end of file
+bx lr
+bmi 0x1000 <_$LT$embassy_rp..config..Config$u20$as$u20$core..default..Default$GT$::default+0x1e> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/__wfe.s b/.bins/2023-06-15/dumped/__wfe.s
index 76aaf72..b198cfb 100644
--- a/.bins/2023-06-14/dumped/__wfe.s
+++ b/.bins/2023-06-15/dumped/__wfe.s
@@ -1,3 +1,2 @@
wfe
-bx lr
-bmi 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::wake+0x3c> @ imm = #0x0
\ No newline at end of file
+bx lr
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_defmt_acquire.s b/.bins/2023-06-15/dumped/_defmt_acquire.s
index 944018c..c7805fa 100644
--- a/.bins/2023-06-14/dumped/_defmt_acquire.s
+++ b/.bins/2023-06-15/dumped/_defmt_acquire.s
@@ -1,65 +1,55 @@
-push {r4, r5, r6, r7, lr}
+push {r4, r5, r7, lr}
add r7, sp, #0x0
sub sp, #0x0
bl 0x1000 <_critical_section_1_0_acquire> @ imm = #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x88>
+ldr r1, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x74>
ldrb r2, [r1]
cmp r2, #0x0
-bne 0x1000 <_defmt_acquire+0x6a> @ imm = #0x0
-movs r4, #0x0
-strb r4, [r1]
+bne 0x1000 <_defmt_acquire+0x58> @ imm = #0x0
+movs r2, #0x0
+strb r2, [r1]
strb r0, [r1, #0x0]
ldrb r0, [r1, #0x0]
cmp r0, #0x0
-beq 0x1000 <_defmt_acquire+0x22> @ imm = #0x0
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
-strb r4, [r1, #0x0]
-add r5, sp, #0x0
-movs r0, #0x0
-strb r0, [r5]
-ldr r0, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x98>
-str r0, [sp]
-ldr r0, [r0, #0x0]
+bne 0x1000 <_defmt_acquire+0x4a> @ imm = #0x0
+strb r2, [r1, #0x0]
+mov r0, sp
+movs r1, #0x0
+strb r1, [r0]
+ldr r4, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x84>
+ldr r0, [r4, #0x0]
movs r1, #0x0
ands r1, r0
cmp r1, #0x0
-beq 0x1000 <_defmt_acquire+0x3c> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <_defmt_acquire+0xa0>
-b 0x1000 <_defmt_acquire+0x3e> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x9c>
-ldr r0, [sp]
-adds r0, #0x0
-str r0, [sp]
-b 0x1000 <_defmt_acquire+0x4a> @ imm = #0x0
-cmp r4, #0x0
-beq 0x1000 <_defmt_acquire+0x1e> @ imm = #0x0
-ldr r0, [sp]
-mov r1, r5
-mov r2, r4
-blx r6
+beq 0x1000 <_defmt_acquire+0x36> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x8c>
+b 0x1000 <_defmt_acquire+0x38> @ imm = #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x88>
+adds r4, #0x0
+mov r1, sp
+movs r2, #0x0
+mov r0, r4
+blx r5
+cmp r0, #0x0
+beq 0x1000 <_defmt_acquire+0x3a> @ imm = #0x0
cmp r0, #0x0
-beq 0x1000 <_defmt_acquire+0x46> @ imm = #0x0
-cmp r4, r0
-blo 0x1000 <_defmt_acquire+0x60> @ imm = #0x0
-adds r5, r5, r0
-subs r4, r4, r0
-b 0x1000 <_defmt_acquire+0x46> @ imm = #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_defmt_acquire+0xa4>
-mov r1, r4
+bne 0x1000 <_defmt_acquire+0x4e> @ imm = #0x0
+add sp, #0x0
+pop {r4, r5, r7, pc}
+movs r1, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x90>
bl 0x1000 <core::slice::index::slice_start_index_len_fail> @ imm = #0x0
trap
movs r0, #0x0
str r0, [sp, #0x0]
movs r1, #0x0
str r1, [sp, #0x0]
-ldr r1, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x8c>
-str r1, [sp, #0x0]
+ldr r1, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x78>
+str r1, [sp]
str r0, [sp, #0x0]
-ldr r0, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x90>
+ldr r0, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x7c>
str r0, [sp, #0x0]
-add r0, sp, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x94>
+mov r0, sp
+ldr r1, [pc, #0x0] @ 0x1000 <_defmt_acquire+0x80>
bl 0x1000 <core::panicking::panic_fmt> @ imm = #0x0
-trap
-mov r8, r8
\ No newline at end of file
+trap
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_defmt_release.s b/.bins/2023-06-15/dumped/_defmt_release.s
index 6c28410..0e75745 100644
--- a/.bins/2023-06-14/dumped/_defmt_release.s
+++ b/.bins/2023-06-15/dumped/_defmt_release.s
@@ -1,10 +1,4 @@
-push {r4, r6, r7, lr}
+push {r7, lr}
add r7, sp, #0x0
-ldr r4, [pc, #0x0] @ 0x1000 <_defmt_release+0x18>
-adds r0, r4, #0x0
-bl 0x1000 <defmt::encoding::inner::Encoder::end_frame> @ imm = #0x0
-movs r0, #0x0
-strb r0, [r4]
-ldrb r0, [r4, #0x0]
-bl 0x1000 <_critical_section_1_0_release> @ imm = #0x0
-pop {r4, r6, r7, pc}
\ No newline at end of file
+bl 0x1000 <_$LT$defmt_rtt..Logger$u20$as$u20$defmt..traits..Logger$GT$::release> @ imm = #0x0
+pop {r7, pc}
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_embassy_time_set_alarm.s b/.bins/2023-06-15/dumped/_embassy_time_set_alarm.s
index e05aa09..6edc702 100644
--- a/.bins/2023-06-14/dumped/_embassy_time_set_alarm.s
+++ b/.bins/2023-06-15/dumped/_embassy_time_set_alarm.s
@@ -1,121 +1,7 @@
-push {r4, r5, r6, r7, lr}
+push {r7, lr}
add r7, sp, #0x0
-sub sp, #0x0
-str r3, [sp, #0x0]
-str r2, [sp, #0x0]
-add r1, sp, #0x0
-strb r0, [r1]
-mov r0, r1
-bl 0x1000 <embassy_time::driver::AlarmHandle::id> @ imm = #0x0
-mov r5, r0
-bl 0x1000 <__primask_r> @ imm = #0x0
-mov r4, r0
-movs r2, #0x0
-movs r0, #0x0
-lsls r0, r0, #0x0
-ldr r0, [r0]
-ldr r1, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x104>
-ldrb r1, [r1]
-dmb sy
-str r5, [sp, #0x0]
-uxtb r6, r5
-adds r3, r0, #0x0
-uxtb r0, r3
-cmp r1, r0
-str r2, [sp, #0x0]
-bne 0x1000 <_embassy_time_set_alarm+0x3e> @ imm = #0x0
-movs r1, #0x0
-b 0x1000 <_embassy_time_set_alarm+0x74> @ imm = #0x0
-str r3, [sp, #0x0]
-ands r4, r2
-ldr r5, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x108>
-bne 0x1000 <_embassy_time_set_alarm+0x60> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-bne 0x1000 <_embassy_time_set_alarm+0x6a> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <_embassy_time_set_alarm+0x50> @ imm = #0x0
-b 0x1000 <_embassy_time_set_alarm+0x6a> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <_embassy_time_set_alarm+0x60> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x104>
-ldr r1, [sp, #0x0]
-strb r1, [r0]
-rsbs r1, r4, #0
-adcs r1, r4
-ldr r0, [sp, #0x0]
-cmp r6, #0x0
-ldr r5, [sp, #0x0]
-bhs 0x1000 <_embassy_time_set_alarm+0xf8> @ imm = #0x0
-str r1, [sp, #0x0]
-lsls r1, r6, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x110>
-str r5, [r2, r1]
-adds r1, r2, r1
-str r0, [r1, #0x0]
-lsls r3, r6, #0x0
-adds r3, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x114>
-adds r3, r3, r2
-subs r3, #0x0
-str r5, [r3]
-ldr r4, [r2]
-ldr r6, [r2, #0x0]
-ldr r3, [r2]
-cmp r4, r3
-beq 0x1000 <_embassy_time_set_alarm+0xa8> @ imm = #0x0
-ldr r4, [r2]
-ldr r6, [r2, #0x0]
-ldr r3, [r2]
-cmp r4, r3
-bne 0x1000 <_embassy_time_set_alarm+0x94> @ imm = #0x0
-subs r3, r6, r5
-mov r3, r4
-sbcs r3, r0
-blo 0x1000 <_embassy_time_set_alarm+0xcc> @ imm = #0x0
-movs r3, #0x0
-ldr r0, [sp, #0x0]
-ands r0, r3
-ldr r3, [sp, #0x0]
-lsls r3, r0
-movs r5, #0x0
-ands r5, r3
-subs r2, r2, #0x0
-str r5, [r2]
-ldr r5, [sp, #0x0]
-movs r2, #0x0
-mvns r2, r2
-str r2, [r1]
-str r2, [r1, #0x0]
-ldr r3, [sp, #0x0]
-cmp r3, #0x0
-ldr r0, [sp, #0x0]
-beq 0x1000 <_embassy_time_set_alarm+0xea> @ imm = #0x0
-movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x104>
-strb r1, [r2]
-ldr r1, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x108>
-str r0, [r1]
-cmp r3, #0x0
-beq 0x1000 <_embassy_time_set_alarm+0xea> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-ldr r0, [sp, #0x0]
-ldr r5, [sp, #0x0]
-subs r1, r6, r5
-ldr r1, [sp, #0x0]
-sbcs r4, r1
-blo 0x1000 <_embassy_time_set_alarm+0xf4> @ imm = #0x0
-movs r0, #0x0
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
-movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x10c>
-mov r0, r6
-bl 0x1000 <core::panicking::panic_bounds_check> @ imm = #0x0
-trap
\ No newline at end of file
+mov r1, r0
+ldr r0, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm+0x10>
+adds r0, #0x0
+bl 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm> @ imm = #0x0
+pop {r7, pc}
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/_embassy_time_set_alarm_callback.s b/.bins/2023-06-15/dumped/_embassy_time_set_alarm_callback.s
index e27f32c..335b811 100644
--- a/.bins/2023-06-14/dumped/_embassy_time_set_alarm_callback.s
+++ b/.bins/2023-06-15/dumped/_embassy_time_set_alarm_callback.s
@@ -1,79 +1,9 @@
-push {r4, r5, r6, r7, lr}
+push {r7, lr}
add r7, sp, #0x0
-sub sp, #0x0
-str r2, [sp, #0x0]
-str r1, [sp, #0x0]
-add r1, sp, #0x0
-strb r0, [r1]
-mov r0, r1
-bl 0x1000 <embassy_time::driver::AlarmHandle::id> @ imm = #0x0
-mov r4, r0
-bl 0x1000 <__primask_r> @ imm = #0x0
-movs r1, #0x0
-lsls r1, r1, #0x0
-ldr r2, [r1]
-ldr r1, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm_callback+0xb0>
-ldrb r1, [r1]
-dmb sy
-uxtb r4, r4
-adds r6, r2, #0x0
-uxtb r2, r6
-cmp r1, r2
-bne 0x1000 <_embassy_time_set_alarm_callback+0x48> @ imm = #0x0
-cmp r4, #0x0
-bhi 0x1000 <_embassy_time_set_alarm_callback+0xa4> @ imm = #0x0
-lsls r0, r4, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm_callback+0xb8>
-adds r0, r1, r0
-ldr r1, [sp, #0x0]
-str r1, [r0, #0x0]
-ldr r1, [sp, #0x0]
-str r1, [r0, #0x0]
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
-movs r1, #0x0
-str r1, [sp]
-ands r0, r1
-str r0, [sp, #0x0]
-ldr r5, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm_callback+0xb4>
-bne 0x1000 <_embassy_time_set_alarm_callback+0x6e> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-bne 0x1000 <_embassy_time_set_alarm_callback+0x78> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <_embassy_time_set_alarm_callback+0x5e> @ imm = #0x0
-b 0x1000 <_embassy_time_set_alarm_callback+0x78> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <_embassy_time_set_alarm_callback+0x6e> @ imm = #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm_callback+0xb0>
-strb r6, [r2]
-cmp r4, #0x0
-bhs 0x1000 <_embassy_time_set_alarm_callback+0xa4> @ imm = #0x0
-lsls r0, r4, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm_callback+0xb8>
-adds r0, r1, r0
-ldr r1, [sp, #0x0]
-str r1, [r0, #0x0]
-ldr r1, [sp, #0x0]
-str r1, [r0, #0x0]
-movs r0, #0x0
-strb r0, [r2]
-ldr r0, [sp]
-str r0, [r5]
-ldr r0, [sp, #0x0]
-cmp r0, #0x0
-bne 0x1000 <_embassy_time_set_alarm_callback+0xa0> @ imm = #0x0
-bl 0x1000 <__cpsie> @ imm = #0x0
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
-movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm_callback+0xbc>
-mov r0, r4
-bl 0x1000 <core::panicking::panic_bounds_check> @ imm = #0x0
-trap
\ No newline at end of file
+mov r3, r2
+mov r2, r1
+mov r1, r0
+ldr r0, [pc, #0x0] @ 0x1000 <_embassy_time_set_alarm_callback+0x14>
+adds r0, #0x0
+bl 0x1000 <_$LT$embassy_rp..timer..TimerDriver$u20$as$u20$embassy_time..driver..Driver$GT$::set_alarm_callback> @ imm = #0x0
+pop {r7, pc}
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/core/ptr/drop_in_place<core::cell::BorrowMutError>.s b/.bins/2023-06-14/dumped/core/ptr/drop_in_place<core::cell::BorrowMutError>.s
deleted file mode 100644
index 530d6ba..0000000
--- a/.bins/2023-06-14/dumped/core/ptr/drop_in_place<core::cell::BorrowMutError>.s
+++ /dev/null
@@ -1 +0,0 @@
-bx lr
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/core/ptr/drop_in_place<core::fmt::Error>.s b/.bins/2023-06-15/dumped/core/ptr/drop_in_place<core::fmt::Error>.s
index 07961dd..b8c8aab 100644
--- a/.bins/2023-06-14/dumped/core/ptr/drop_in_place<core::fmt::Error>.s
+++ b/.bins/2023-06-15/dumped/core/ptr/drop_in_place<core::fmt::Error>.s
@@ -1,2 +1,2 @@
bx lr
-bmi 0x1000 <defmt_rtt::channel::Channel::nonblocking_write (.llvm)+0x24> @ imm = #0x0
\ No newline at end of file
+bmi 0x1000 <_defmt_acquire+0x6a> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/core/ptr/drop_in_place<embassy_usb_driver::EndpointAllocError>.s b/.bins/2023-06-15/dumped/core/ptr/drop_in_place<embassy_usb_driver::EndpointAllocError>.s
index 8cc3bc8..530d6ba 100644
--- a/.bins/2023-06-14/dumped/core/ptr/drop_in_place<embassy_usb_driver::EndpointAllocError>.s
+++ b/.bins/2023-06-15/dumped/core/ptr/drop_in_place<embassy_usb_driver::EndpointAllocError>.s
@@ -1,2 +1 @@
-bx lr
-bmi 0x1000 <embassy_usb::builder::Builder$LT$D$GT$::build+0x10a> @ imm = #0x0
\ No newline at end of file
+bx lr
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/defmt/encoding/inner/Encoder/end_frame.s b/.bins/2023-06-14/dumped/defmt/encoding/inner/Encoder/end_frame.s
deleted file mode 100644
index eed85a8..0000000
--- a/.bins/2023-06-14/dumped/defmt/encoding/inner/Encoder/end_frame.s
+++ /dev/null
@@ -1,123 +0,0 @@
-push {r4, r5, r6, r7, lr}
-add r7, sp, #0x0
-sub sp, #0x0
-str r0, [sp, #0x0]
-ldrb r0, [r0, #0x0]
-cmp r0, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xa0> @ imm = #0x0
-cmp r0, #0x0
-bhs 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x38> @ imm = #0x0
-movs r1, #0x0
-mvns r1, r1
-lsls r1, r0
-ldr r0, [sp, #0x0]
-ldrb r0, [r0, #0x0]
-orrs r0, r1
-movs r1, #0x0
-ands r1, r0
-add r5, sp, #0x0
-strb r1, [r5]
-ldr r0, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xf8>
-str r0, [sp, #0x0]
-ldr r0, [r0, #0x0]
-movs r1, #0x0
-ands r1, r0
-cmp r1, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x54> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x100>
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x56> @ imm = #0x0
-adds r0, #0x0
-movs r1, #0x0
-orrs r1, r0
-add r5, sp, #0x0
-strb r1, [r5]
-ldr r0, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xf8>
-str r0, [sp, #0x0]
-ldr r0, [r0, #0x0]
-movs r1, #0x0
-ands r1, r0
-cmp r1, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x7a> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x100>
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x7c> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xfc>
-movs r4, #0x0
-ldr r0, [sp, #0x0]
-adds r0, #0x0
-str r0, [sp, #0x0]
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x64> @ imm = #0x0
-cmp r4, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xa0> @ imm = #0x0
-ldr r0, [sp, #0x0]
-mov r1, r5
-mov r2, r4
-blx r6
-cmp r0, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x60> @ imm = #0x0
-cmp r4, r0
-blo 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xec> @ imm = #0x0
-adds r5, r5, r0
-subs r4, r4, r0
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x60> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xfc>
-movs r4, #0x0
-ldr r0, [sp, #0x0]
-adds r0, #0x0
-str r0, [sp, #0x0]
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x8a> @ imm = #0x0
-cmp r4, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xa0> @ imm = #0x0
-ldr r0, [sp, #0x0]
-mov r1, r5
-mov r2, r4
-blx r6
-cmp r0, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x86> @ imm = #0x0
-cmp r4, r0
-blo 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xec> @ imm = #0x0
-adds r5, r5, r0
-subs r4, r4, r0
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x86> @ imm = #0x0
-add r5, sp, #0x0
-movs r0, #0x0
-str r0, [sp, #0x0]
-strb r0, [r5]
-ldr r0, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xf8>
-str r0, [sp, #0x0]
-ldr r0, [r0, #0x0]
-movs r1, #0x0
-ands r1, r0
-cmp r1, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xba> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x100>
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xbc> @ imm = #0x0
-ldr r6, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xfc>
-movs r4, #0x0
-ldr r0, [sp, #0x0]
-adds r0, #0x0
-str r0, [sp, #0x0]
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xca> @ imm = #0x0
-cmp r4, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xe0> @ imm = #0x0
-ldr r0, [sp, #0x0]
-mov r1, r5
-mov r2, r4
-blx r6
-cmp r0, #0x0
-beq 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xc6> @ imm = #0x0
-cmp r4, r0
-blo 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xec> @ imm = #0x0
-adds r5, r5, r0
-subs r4, r4, r0
-b 0x1000 <defmt::encoding::inner::Encoder::end_frame+0xc6> @ imm = #0x0
-ldr r0, [sp, #0x0]
-ldr r1, [sp, #0x0]
-strb r1, [r0, #0x0]
-strb r1, [r0, #0x0]
-add sp, #0x0
-pop {r4, r5, r6, r7, pc}
-ldr r2, [pc, #0x0] @ 0x1000 <defmt::encoding::inner::Encoder::end_frame+0x104>
-mov r1, r4
-bl 0x1000 <core::slice::index::slice_start_index_len_fail> @ imm = #0x0
-trap
-mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/defmt_rtt/channel/Channel/blocking_write.s b/.bins/2023-06-15/dumped/defmt_rtt/channel/Channel/blocking_write.s
index d64264e..d3933ab 100644
--- a/.bins/2023-06-14/dumped/defmt_rtt/channel/Channel/blocking_write.s
+++ b/.bins/2023-06-15/dumped/defmt_rtt/channel/Channel/blocking_write.s
@@ -4,7 +4,7 @@ sub sp, #0x0
mov r5, r0
movs r0, #0x0
cmp r2, #0x0
-beq 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x3a> @ imm = #0x0
+beq 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x3a> @ imm = #0x0
mov r4, r2
str r1, [sp, #0x0]
ldr r2, [r5, #0x0]
@@ -13,32 +13,32 @@ dmb sy
movs r3, #0x0
lsls r3, r3, #0x0
cmp r2, r1
-bls 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x30> @ imm = #0x0
+bls 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x30> @ imm = #0x0
mov r6, r3
mvns r3, r1
adds r2, r2, r3
mov r3, r6
cmp r2, #0x0
-bne 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x46> @ imm = #0x0
-b 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x3a> @ imm = #0x0
+bne 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x46> @ imm = #0x0
+b 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x3a> @ imm = #0x0
cmp r2, #0x0
-beq 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x3e> @ imm = #0x0
+beq 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x3e> @ imm = #0x0
subs r2, r3, r1
cmp r2, #0x0
-bne 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x46> @ imm = #0x0
+bne 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x46> @ imm = #0x0
add sp, #0x0
pop {r4, r5, r6, r7, pc}
mvns r2, r1
adds r2, r2, r3
cmp r2, #0x0
-beq 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x3a> @ imm = #0x0
+beq 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x3a> @ imm = #0x0
cmp r4, r2
-blo 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x4c> @ imm = #0x0
+blo 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x4c> @ imm = #0x0
mov r4, r2
adds r6, r4, r1
cmp r6, r3
str r3, [sp, #0x0]
-bls 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x70> @ imm = #0x0
+bls 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x70> @ imm = #0x0
subs r0, r3, r1
str r0, [sp]
ldr r0, [r5, #0x0]
@@ -51,7 +51,7 @@ ldr r1, [sp, #0x0]
adds r1, r1, r0
subs r2, r4, r0
ldr r0, [r5, #0x0]
-b 0x1000 <defmt_rtt::channel::Channel::blocking_write (.llvm)+0x78> @ imm = #0x0
+b 0x1000 <defmt_rtt::channel::Channel::blocking_write+0x78> @ imm = #0x0
ldr r0, [r5, #0x0]
adds r0, r0, r1
ldr r1, [sp, #0x0]
diff --git a/.bins/2023-06-14/dumped/defmt_rtt/channel/Channel/nonblocking_write.s b/.bins/2023-06-15/dumped/defmt_rtt/channel/Channel/nonblocking_write.s
index 4a1ab42..aa4a0bc 100644
--- a/.bins/2023-06-14/dumped/defmt_rtt/channel/Channel/nonblocking_write.s
+++ b/.bins/2023-06-15/dumped/defmt_rtt/channel/Channel/nonblocking_write.s
@@ -5,14 +5,14 @@ mov r6, r2
movs r2, #0x0
lsls r4, r2, #0x0
cmp r6, r4
-blo 0x1000 <defmt_rtt::channel::Channel::nonblocking_write (.llvm)+0x12> @ imm = #0x0
+blo 0x1000 <defmt_rtt::channel::Channel::nonblocking_write+0x12> @ imm = #0x0
mov r6, r4
ldr r3, [r0, #0x0]
adds r5, r3, r6
dmb sy
cmp r5, r4
str r0, [sp, #0x0]
-bls 0x1000 <defmt_rtt::channel::Channel::nonblocking_write (.llvm)+0x3c> @ imm = #0x0
+bls 0x1000 <defmt_rtt::channel::Channel::nonblocking_write+0x3c> @ imm = #0x0
subs r2, r4, r3
str r2, [sp]
ldr r0, [r0, #0x0]
@@ -25,7 +25,7 @@ adds r1, r1, r0
subs r2, r6, r0
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x0]
-b 0x1000 <defmt_rtt::channel::Channel::nonblocking_write (.llvm)+0x42> @ imm = #0x0
+b 0x1000 <defmt_rtt::channel::Channel::nonblocking_write+0x42> @ imm = #0x0
ldr r0, [r0, #0x0]
adds r0, r0, r3
mov r2, r6
diff --git a/.bins/2023-06-14/dumped/embassy_executor/arch/thread/Executor/run.s b/.bins/2023-06-15/dumped/embassy_executor/arch/thread/Executor/run.s
index a996c7f..1d662c3 100644
--- a/.bins/2023-06-14/dumped/embassy_executor/arch/thread/Executor/run.s
+++ b/.bins/2023-06-15/dumped/embassy_executor/arch/thread/Executor/run.s
@@ -2,7 +2,7 @@ push {r7, lr}
add r7, sp, #0x0
sub sp, #0x0
mov r4, r0
-bl 0x1000 <embassy_executor::raw::Executor::spawner> @ imm = #0x0
+bl 0x1000 <embassy_executor::spawner::Spawner::new> @ imm = #0x0
str r0, [sp, #0x0]
movs r0, #0x0
str r0, [sp]
diff --git a/.bins/2023-06-14/dumped/embassy_executor/raw/Executor/poll.s b/.bins/2023-06-15/dumped/embassy_executor/raw/Executor/poll.s
index 91cbba6..246a6fa 100644
--- a/.bins/2023-06-14/dumped/embassy_executor/raw/Executor/poll.s
+++ b/.bins/2023-06-15/dumped/embassy_executor/raw/Executor/poll.s
@@ -23,7 +23,7 @@ str r0, [sp, #0x0]
ldr r0, [sp]
ldrb r4, [r0, #0x0]
add r0, sp, #0x0
-bl 0x1000 <embassy_time::instant::Instant::as_micros> @ imm = #0x0
+bl 0x1000 <embassy_time::duration::Duration::as_micros> @ imm = #0x0
mov r2, r0
mov r0, r4
mov r3, r1
diff --git a/.bins/2023-06-14/dumped/embassy_executor/raw/Executor/spawner.s b/.bins/2023-06-14/dumped/embassy_executor/raw/Executor/spawner.s
deleted file mode 100644
index ce8a1ad..0000000
--- a/.bins/2023-06-14/dumped/embassy_executor/raw/Executor/spawner.s
+++ /dev/null
@@ -1,2 +0,0 @@
-bx lr
-bmi 0x1000 <serial_ws2812_firmware::__cortex_m_rt_main+0x13a> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_executor/raw/SyncExecutor/alarm_callback.s b/.bins/2023-06-15/dumped/embassy_executor/raw/SyncExecutor/alarm_callback.s
index 78fddfb..601dfb7 100644
--- a/.bins/2023-06-14/dumped/embassy_executor/raw/SyncExecutor/alarm_callback.s
+++ b/.bins/2023-06-15/dumped/embassy_executor/raw/SyncExecutor/alarm_callback.s
@@ -2,22 +2,22 @@ push {r7, lr}
add r7, sp, #0x0
ldrh r1, [r0]
cmp r1, #0x0
-beq 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback (.llvm)+0x22> @ imm = #0x0
+beq 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback+0x22> @ imm = #0x0
ldrh r1, [r0, #0x0]
lsrs r0, r1, #0x0
lsrs r2, r1, #0x0
-bne 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback (.llvm)+0x26> @ imm = #0x0
+bne 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback+0x26> @ imm = #0x0
movs r2, #0x0
ands r1, r2
movs r2, #0x0
lsls r2, r1
lsls r0, r0, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback (.llvm)+0x34>
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback+0x34>
str r2, [r0, r1]
pop {r7, pc}
sev
pop {r7, pc}
movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback (.llvm)+0x30>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::SyncExecutor::alarm_callback+0x30>
bl 0x1000 <core::panicking::panic_bounds_check> @ imm = #0x0
trap
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_executor/raw/TaskRef/as_ptr.s b/.bins/2023-06-15/dumped/embassy_executor/raw/TaskRef/as_ptr.s
index b952f9d..08905b1 100644
--- a/.bins/2023-06-14/dumped/embassy_executor/raw/TaskRef/as_ptr.s
+++ b/.bins/2023-06-15/dumped/embassy_executor/raw/TaskRef/as_ptr.s
@@ -1,2 +1,2 @@
bx lr
-bmi 0x1000 <serial_ws2812_firmware::__cortex_m_rt_main+0xfe> @ imm = #0x0
\ No newline at end of file
+bmi 0x1000 <serial_ws2812_firmware::__cortex_m_rt_main+0x142> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_executor/raw/TaskStorage<F>/poll.s b/.bins/2023-06-15/dumped/embassy_executor/raw/TaskStorage<F>/poll.s
index e381bfb..c18ccc8 100644
--- a/.bins/2023-06-14/dumped/embassy_executor/raw/TaskStorage<F>/poll.s
+++ b/.bins/2023-06-15/dumped/embassy_executor/raw/TaskStorage<F>/poll.s
@@ -11,38 +11,40 @@ str r1, [sp, #0x0]
str r0, [sp, #0x0]
add r0, sp, #0x0
str r0, [sp, #0x0]
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1a0>
-adds r1, r4, r0
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1a4>
-adds r3, r4, r0
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1a8>
-adds r2, r4, r0
-ldr r6, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1ac>
-ldrb r0, [r4, r6]
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x168>
+adds r0, r4, r0
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x174>
+ldrb r1, [r4, r2]
add r5, sp, #0x0
-cmp r0, #0x0
-str r1, [sp, #0x0]
-str r2, [sp, #0x0]
-beq 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x48> @ imm = #0x0
-cmp r0, #0x0
-beq 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x132> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1b0>
+cmp r1, #0x0
+beq 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x3e> @ imm = #0x0
+cmp r1, #0x0
+bne 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x32> @ imm = #0x0
+b 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x136> @ imm = #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x178>
movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1b4>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x17c>
bl 0x1000 <core::panicking::panic> @ imm = #0x0
trap
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x16c>
+adds r1, r4, r1
+str r1, [sp, #0x0]
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x170>
+adds r1, r4, r1
+str r1, [sp, #0x0]
adds r5, #0x0
-movs r0, #0x0
-lsls r0, r0, #0x0
-adds r1, r4, r0
-add r0, sp, #0x0
+movs r1, #0x0
+lsls r1, r1, #0x0
+adds r1, r4, r1
+add r3, sp, #0x0
+str r3, [sp, #0x0]
str r0, [sp, #0x0]
movs r2, #0x0
-str r3, [sp, #0x0]
+mov r0, r3
bl 0x1000 <__aeabi_memcpy4> @ imm = #0x0
add r6, sp, #0x0
-ldr r1, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1b8>
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1bc>
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x180>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x184>
mov r0, r6
bl 0x1000 <embassy_usb::builder::Config::new> @ imm = #0x0
movs r0, #0x0
@@ -50,14 +52,14 @@ strh r0, [r6, #0x0]
movs r1, #0x0
str r1, [sp, #0x0]
strb r1, [r5, #0x0]
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1c0>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x188>
str r0, [r5]
str r1, [sp, #0x0]
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1c4>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x18c>
str r0, [sp, #0x0]
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1c8>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x190>
str r0, [sp, #0x0]
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1cc>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x194>
str r0, [sp, #0x0]
movs r0, #0x0
str r0, [sp, #0x0]
@@ -111,7 +113,7 @@ ldr r1, [sp, #0x0]
ldr r2, [sp, #0x0]
ldr r3, [sp, #0x0]
bl 0x1000 <embassy_usb::builder::Builder$LT$D$GT$::new> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1d0>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x198>
adds r0, r4, r0
str r0, [sp, #0x0]
mov r1, r6
@@ -130,45 +132,29 @@ adds r6, r4, r0
mov r0, r6
mov r1, r5
bl 0x1000 <embassy_usb::builder::Builder$LT$D$GT$::build> @ imm = #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x174>
+ldr r0, [sp, #0x0]
+movs r1, #0x0
+strb r1, [r0, #0x0]
+ldr r3, [sp, #0x0]
+str r3, [r0]
ldr r3, [sp, #0x0]
-movs r0, #0x0
-ldr r1, [sp, #0x0]
-strb r0, [r1, #0x0]
-ldr r2, [sp, #0x0]
-str r2, [r1]
str r6, [r3]
-ldr r6, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1ac>
-ldr r1, [sp, #0x0]
-strb r0, [r1]
-adds r0, r4, r6
-str r0, [sp, #0x0]
-add r5, sp, #0x0
-mov r0, r3
-mov r1, r5
-bl 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll> @ imm = #0x0
-mov r6, r0
-ldr r0, [sp, #0x0]
-mov r1, r5
-bl 0x1000 <_$LT$futures_util..future..maybe_done..MaybeDone$LT$Fut$GT$$u20$as$u20$core..future..future..Future$GT$::poll> @ imm = #0x0
-cmp r6, #0x0
-bne 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x184> @ imm = #0x0
-cmp r0, #0x0
-bne 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x184> @ imm = #0x0
-ldr r1, [sp, #0x0]
-ldrb r0, [r1]
-cmp r0, #0x0
-bne 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x192> @ imm = #0x0
-movs r0, #0x0
-strb r0, [r1]
-ldr r1, [sp, #0x0]
-ldrb r0, [r1, #0x0]
+ldr r3, [sp, #0x0]
+strb r1, [r3]
+adds r5, r4, r2
+add r1, sp, #0x0
+bl 0x1000 <_$LT$futures_util..future..join..Join$LT$Fut1$C$Fut2$GT$$u20$as$u20$core..future..future..Future$GT$::poll> @ imm = #0x0
cmp r0, #0x0
-bne 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x192> @ imm = #0x0
+beq 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x14e> @ imm = #0x0
movs r0, #0x0
-strb r0, [r1, #0x0]
+strb r0, [r5]
+subs r4, r7, #0x0
+subs r4, #0x0
+mov sp, r4
+pop {r4, r5, r6, r7, pc}
movs r0, #0x0
-ldr r1, [sp, #0x0]
-strb r0, [r1]
+strb r0, [r5]
adds r4, #0x0
mvns r1, r0
movs r2, #0x0
@@ -178,16 +164,4 @@ subs r4, r7, #0x0
subs r4, #0x0
mov sp, r4
pop {r4, r5, r6, r7, pc}
-movs r0, #0x0
-ldr r1, [sp, #0x0]
-strb r0, [r1]
-subs r4, r7, #0x0
-subs r4, #0x0
-mov sp, r4
-pop {r4, r5, r6, r7, pc}
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1d4>
-movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_executor::raw::TaskStorage$LT$F$GT$::poll (.llvm)+0x1d8>
-bl 0x1000 <core::panicking::panic> @ imm = #0x0
-trap
mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_executor/raw/waker/clone.s b/.bins/2023-06-15/dumped/embassy_executor/raw/waker/clone.s
index 4c856f8..8443ee8 100644
--- a/.bins/2023-06-14/dumped/embassy_executor/raw/waker/clone.s
+++ b/.bins/2023-06-15/dumped/embassy_executor/raw/waker/clone.s
@@ -1,4 +1,4 @@
mov r1, r0
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::waker::clone (.llvm)+0x8>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_executor::raw::waker::clone+0x8>
bx lr
mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/embassy_executor/spawner/Spawner/new.s b/.bins/2023-06-15/dumped/embassy_executor/spawner/Spawner/new.s
new file mode 100644
index 0000000..31d9813
--- /dev/null
+++ b/.bins/2023-06-15/dumped/embassy_executor/spawner/Spawner/new.s
@@ -0,0 +1,2 @@
+bx lr
+bmi 0x1000 <embassy_executor::raw::waker::wake+0x2> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_rp/clocks/init.s b/.bins/2023-06-15/dumped/embassy_rp/clocks/init.s
index 902ca82..f4fd301 100644
--- a/.bins/2023-06-14/dumped/embassy_rp/clocks/init.s
+++ b/.bins/2023-06-15/dumped/embassy_rp/clocks/init.s
@@ -126,7 +126,7 @@ ldrb r0, [r0, #0x0]
str r0, [sp, #0x0]
ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::clocks::init+0x484>
str r2, [sp, #0x0]
-bl 0x1000 <rp_pac::rosc::vals::FreqRange::to_bits> @ imm = #0x0
+bl 0x1000 <rp_pac::xosc::vals::Enable::to_bits> @ imm = #0x0
lsls r0, r0, #0x0
adds r0, r0, r5
ldr r1, [sp, #0x0]
@@ -147,7 +147,7 @@ mov r5, r1
ldr r0, [sp, #0x0]
ands r4, r0
ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::clocks::init+0x484>
-bl 0x1000 <rp_pac::rosc::vals::FreqRange::to_bits> @ imm = #0x0
+bl 0x1000 <rp_pac::xosc::vals::Enable::to_bits> @ imm = #0x0
lsls r0, r0, #0x0
adds r0, r0, r4
ldr r4, [sp, #0x0]
@@ -168,16 +168,16 @@ movs r0, #0x0
lsls r0, r0, #0x0
ldr r1, [sp, #0x0]
adds r0, r1, r0
-bl 0x1000 <rp_pac::rosc::vals::FreqRange::to_bits> @ imm = #0x0
+bl 0x1000 <rp_pac::xosc::vals::Enable::to_bits> @ imm = #0x0
ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::clocks::init+0x480>
ands r0, r1
str r0, [r5, #0x0]
mov r0, r1
subs r0, #0x0
-bl 0x1000 <rp_pac::rosc::vals::FreqRange::to_bits> @ imm = #0x0
+bl 0x1000 <rp_pac::xosc::vals::Enable::to_bits> @ imm = #0x0
mov r5, r0
ldr r0, [sp, #0x0]
-bl 0x1000 <rp_pac::rosc::vals::FreqRange::to_bits> @ imm = #0x0
+bl 0x1000 <rp_pac::xosc::vals::Enable::to_bits> @ imm = #0x0
ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::clocks::init+0x480>
ands r0, r1
ands r5, r1
diff --git a/.bins/2023-06-14/dumped/embassy_rp/init.s b/.bins/2023-06-15/dumped/embassy_rp/init.s
index 4d3b1fa..a0fca71 100644
--- a/.bins/2023-06-14/dumped/embassy_rp/init.s
+++ b/.bins/2023-06-15/dumped/embassy_rp/init.s
@@ -3,56 +3,55 @@ add r7, sp, #0x0
sub sp, #0x0
mov r4, r0
bl 0x1000 <__primask_r> @ imm = #0x0
-movs r2, #0x0
+movs r6, #0x0
movs r1, #0x0
-lsls r1, r1, #0x0
-ldr r3, [r1]
-ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::init+0xac>
+lsls r2, r1, #0x0
+ldr r3, [r2]
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x13c>
ldrb r1, [r1]
dmb sy
-adds r6, r3, #0x0
-uxtb r3, r6
+adds r5, r3, #0x0
+uxtb r3, r5
cmp r1, r3
-bne 0x1000 <embassy_rp::init+0x30> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0xb4>
+str r2, [sp, #0x0]
+str r6, [sp, #0x0]
+bne 0x1000 <embassy_rp::init+0x36> @ imm = #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x144>
ldrb r1, [r0]
cmp r1, #0x0
-bne 0x1000 <embassy_rp::init+0xa6> @ imm = #0x0
-strb r2, [r0]
-b 0x1000 <embassy_rp::init+0x7e> @ imm = #0x0
-str r2, [sp, #0x0]
-ands r0, r2
-str r0, [sp, #0x0]
-ldr r5, [pc, #0x0] @ 0x1000 <embassy_rp::init+0xb0>
-bne 0x1000 <embassy_rp::init+0x54> @ imm = #0x0
+beq 0x1000 <embassy_rp::init+0x32> @ imm = #0x0
+b 0x1000 <embassy_rp::init+0x134> @ imm = #0x0
+strb r6, [r0]
+b 0x1000 <embassy_rp::init+0x7a> @ imm = #0x0
+ands r0, r6
+str r0, [sp]
+bne 0x1000 <embassy_rp::init+0x4e> @ imm = #0x0
bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x140>
+ldr r0, [r2]
cmp r0, #0x0
-bne 0x1000 <embassy_rp::init+0x5e> @ imm = #0x0
+bne 0x1000 <embassy_rp::init+0x5a> @ imm = #0x0
bl 0x1000 <__cpsie> @ imm = #0x0
+b 0x1000 <embassy_rp::init+0x3c> @ imm = #0x0
bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x140>
+ldr r0, [r2]
cmp r0, #0x0
-beq 0x1000 <embassy_rp::init+0x44> @ imm = #0x0
-b 0x1000 <embassy_rp::init+0x5e> @ imm = #0x0
-bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r5]
-cmp r0, #0x0
-beq 0x1000 <embassy_rp::init+0x54> @ imm = #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_rp::init+0xac>
-strb r6, [r2]
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0xb4>
+beq 0x1000 <embassy_rp::init+0x4e> @ imm = #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x13c>
+strb r5, [r0]
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x144>
ldrb r1, [r0]
cmp r1, #0x0
-ldr r1, [sp, #0x0]
-bne 0x1000 <embassy_rp::init+0xa6> @ imm = #0x0
-strb r1, [r0]
+bne 0x1000 <embassy_rp::init+0x134> @ imm = #0x0
+strb r6, [r0]
movs r0, #0x0
-strb r0, [r2]
-str r1, [r5]
-ldr r0, [sp, #0x0]
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x13c>
+strb r0, [r1]
+str r6, [r2]
+ldr r0, [sp]
cmp r0, #0x0
-bne 0x1000 <embassy_rp::init+0x7e> @ imm = #0x0
+bne 0x1000 <embassy_rp::init+0x7a> @ imm = #0x0
bl 0x1000 <__cpsie> @ imm = #0x0
add r0, sp, #0x0
mov r1, r0
@@ -67,8 +66,75 @@ stm r1!, {r2, r3, r5, r6}
bl 0x1000 <embassy_rp::clocks::init> @ imm = #0x0
bl 0x1000 <embassy_rp::timer::init> @ imm = #0x0
bl 0x1000 <embassy_rp::dma::init> @ imm = #0x0
-bl 0x1000 <embassy_rp::gpio::init> @ imm = #0x0
+ldr r5, [sp, #0x0]
+lsls r6, r5, #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x148>
+str r6, [r0]
+bl 0x1000 <__primask_r> @ imm = #0x0
+mov r4, r0
+ldr r0, [sp, #0x0]
+ldr r0, [r0]
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x13c>
+ldrb r1, [r1]
+dmb sy
+adds r2, r0, #0x0
+uxtb r0, r2
+cmp r1, r0
+bne 0x1000 <embassy_rp::init+0xc0> @ imm = #0x0
+movs r5, #0x0
+b 0x1000 <embassy_rp::init+0xfc> @ imm = #0x0
+mov r0, r5
+mov r5, r2
+str r6, [sp, #0x0]
+ands r4, r0
+bne 0x1000 <embassy_rp::init+0xe6> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r6, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x140>
+ldr r0, [r6]
+cmp r0, #0x0
+bne 0x1000 <embassy_rp::init+0xf2> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <embassy_rp::init+0xd6> @ imm = #0x0
+b 0x1000 <embassy_rp::init+0xf2> @ imm = #0x0
+ldr r6, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x140>
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <embassy_rp::init+0xe8> @ imm = #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x13c>
+strb r5, [r0]
+rsbs r5, r4, #0
+adcs r5, r4
+ldr r6, [sp, #0x0]
+movs r0, #0x0
+bl 0x1000 <embassy_hal_common::interrupt::_$LT$impl$u20$core..convert..From$LT$embassy_hal_common..interrupt..Priority$GT$$u20$for$u20$u8$GT$::from> @ imm = #0x0
+movs r1, #0x0
+lsls r1, r1, #0x0
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x14c>
+ldr r3, [r2]
+bics r3, r1
+uxtb r0, r0
+lsls r0, r0, #0x0
+adds r0, r3, r0
+str r0, [r2]
+cmp r5, #0x0
+beq 0x1000 <embassy_rp::init+0x12c> @ imm = #0x0
+movs r0, #0x0
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x13c>
+strb r0, [r1]
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x140>
+ldr r1, [sp, #0x0]
+str r1, [r0]
+cmp r5, #0x0
+beq 0x1000 <embassy_rp::init+0x12c> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::init+0x150>
+str r6, [r0]
add sp, #0x0
pop {r4, r5, r6, r7, pc}
bl 0x1000 <_defmt_panic> @ imm = #0x0
-trap
\ No newline at end of file
+trap
+mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/embassy_rp/timer/TimerDriver/check_alarm.s b/.bins/2023-06-15/dumped/embassy_rp/timer/TimerDriver/check_alarm.s
new file mode 100644
index 0000000..a6acca2
--- /dev/null
+++ b/.bins/2023-06-15/dumped/embassy_rp/timer/TimerDriver/check_alarm.s
@@ -0,0 +1,109 @@
+push {r4, r5, r6, r7, lr}
+add r7, sp, #0x0
+sub sp, #0x0
+mov r6, r0
+bl 0x1000 <__primask_r> @ imm = #0x0
+mov r5, r0
+movs r2, #0x0
+movs r0, #0x0
+lsls r0, r0, #0x0
+ldr r0, [r0]
+ldr r3, [pc, #0x0] @ 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xe8>
+ldrb r1, [r3]
+dmb sy
+adds r4, r0, #0x0
+uxtb r0, r4
+cmp r1, r0
+str r6, [sp, #0x0]
+str r2, [sp, #0x0]
+bne 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x30> @ imm = #0x0
+movs r0, #0x0
+str r0, [sp, #0x0]
+b 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x66> @ imm = #0x0
+ands r5, r2
+ldr r6, [pc, #0x0] @ 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xec>
+bne 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x50> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+bne 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x5a> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x40> @ imm = #0x0
+b 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x5a> @ imm = #0x0
+bl 0x1000 <__cpsid> @ imm = #0x0
+ldr r0, [r6]
+cmp r0, #0x0
+beq 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x50> @ imm = #0x0
+ldr r3, [pc, #0x0] @ 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xe8>
+strb r4, [r3]
+rsbs r0, r5, #0
+adcs r0, r5
+str r0, [sp, #0x0]
+ldr r6, [sp, #0x0]
+lsls r0, r6, #0x0
+adds r0, r3, r0
+ldr r2, [r0, #0x0]
+ldr r1, [r0, #0x0]
+str r1, [sp, #0x0]
+mov r1, r0
+adds r1, #0x0
+ldr r5, [pc, #0x0] @ 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xf0>
+ldr r6, [r5]
+ldr r4, [r5, #0x0]
+ldr r3, [r5]
+cmp r6, r3
+beq 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x8a> @ imm = #0x0
+ldr r6, [r5]
+ldr r4, [r5, #0x0]
+ldr r3, [r5]
+cmp r6, r3
+bne 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0x76> @ imm = #0x0
+subs r3, r4, r2
+ldr r3, [sp, #0x0]
+sbcs r6, r3
+bhs 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xa0> @ imm = #0x0
+ldr r4, [sp, #0x0]
+lsls r0, r4, #0x0
+adds r0, r0, r5
+subs r0, #0x0
+str r2, [r0]
+ldr r6, [sp, #0x0]
+b 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xc6> @ imm = #0x0
+movs r2, #0x0
+ldr r4, [sp, #0x0]
+ands r2, r4
+ldr r6, [sp, #0x0]
+mov r3, r6
+lsls r3, r2
+movs r2, #0x0
+ands r2, r3
+subs r3, r5, #0x0
+str r2, [r3]
+movs r2, #0x0
+mvns r2, r2
+str r2, [r1]
+str r2, [r1, #0x0]
+ldr r1, [r0, #0x0]
+cmp r1, #0x0
+beq 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xc6> @ imm = #0x0
+ldr r0, [r0, #0x0]
+blx r1
+ldr r2, [sp, #0x0]
+cmp r2, #0x0
+beq 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xde> @ imm = #0x0
+movs r0, #0x0
+ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xe8>
+strb r0, [r1]
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xec>
+str r6, [r0]
+cmp r2, #0x0
+beq 0x1000 <embassy_rp::timer::TimerDriver::check_alarm+0xde> @ imm = #0x0
+bl 0x1000 <__cpsie> @ imm = #0x0
+lsls r6, r4
+str r6, [r5, #0x0]
+add sp, #0x0
+pop {r4, r5, r6, r7, pc}
+mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_rp/timer/init.s b/.bins/2023-06-15/dumped/embassy_rp/timer/init.s
index fab3134..481d2f1 100644
--- a/.bins/2023-06-14/dumped/embassy_rp/timer/init.s
+++ b/.bins/2023-06-15/dumped/embassy_rp/timer/init.s
@@ -2,73 +2,71 @@ push {r4, r5, r6, r7, lr}
add r7, sp, #0x0
sub sp, #0x0
bl 0x1000 <__primask_r> @ imm = #0x0
-mov r4, r0
-movs r6, #0x0
-movs r0, #0x0
-lsls r0, r0, #0x0
-ldr r0, [r0]
-ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xac>
-ldrb r1, [r1]
+movs r5, #0x0
+movs r1, #0x0
+lsls r1, r1, #0x0
+ldr r2, [r1]
+ldr r6, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xa8>
+ldrb r1, [r6]
dmb sy
-adds r5, r0, #0x0
-uxtb r0, r5
-cmp r1, r0
-bne 0x1000 <embassy_rp::timer::init+0x3c> @ imm = #0x0
+adds r4, r2, #0x0
+uxtb r2, r4
+cmp r1, r2
+bne 0x1000 <embassy_rp::timer::init+0x38> @ imm = #0x0
movs r0, #0x0
mvns r0, r0
-ldr r1, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xb4>
-str r0, [r1, #0x0]
-str r0, [r1, #0x0]
-str r0, [r1, #0x0]
-str r0, [r1, #0x0]
-str r0, [r1, #0x0]
-str r0, [r1, #0x0]
-str r0, [r1]
-str r0, [r1, #0x0]
-b 0x1000 <embassy_rp::timer::init+0x92> @ imm = #0x0
-str r6, [sp]
-ands r4, r6
-ldr r6, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xb0>
-bne 0x1000 <embassy_rp::timer::init+0x5e> @ imm = #0x0
+str r0, [r6, #0x0]
+str r0, [r6, #0x0]
+str r0, [r6, #0x0]
+str r0, [r6, #0x0]
+str r0, [r6, #0x0]
+str r0, [r6, #0x0]
+str r0, [r6, #0x0]
+str r0, [r6, #0x0]
+b 0x1000 <embassy_rp::timer::init+0x8e> @ imm = #0x0
+str r5, [sp, #0x0]
+ands r0, r5
+str r0, [sp, #0x0]
+ldr r5, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xac>
+bne 0x1000 <embassy_rp::timer::init+0x5c> @ imm = #0x0
bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r6]
+ldr r0, [r5]
cmp r0, #0x0
-bne 0x1000 <embassy_rp::timer::init+0x68> @ imm = #0x0
+bne 0x1000 <embassy_rp::timer::init+0x66> @ imm = #0x0
bl 0x1000 <__cpsie> @ imm = #0x0
bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r6]
+ldr r0, [r5]
cmp r0, #0x0
-beq 0x1000 <embassy_rp::timer::init+0x4e> @ imm = #0x0
-b 0x1000 <embassy_rp::timer::init+0x68> @ imm = #0x0
+beq 0x1000 <embassy_rp::timer::init+0x4c> @ imm = #0x0
+b 0x1000 <embassy_rp::timer::init+0x66> @ imm = #0x0
bl 0x1000 <__cpsid> @ imm = #0x0
-ldr r0, [r6]
+ldr r0, [r5]
cmp r0, #0x0
-beq 0x1000 <embassy_rp::timer::init+0x5e> @ imm = #0x0
-ldr r3, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xac>
-strb r5, [r3]
+beq 0x1000 <embassy_rp::timer::init+0x5c> @ imm = #0x0
+strb r4, [r6]
movs r0, #0x0
mvns r1, r0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xb4>
-str r1, [r2, #0x0]
-str r1, [r2, #0x0]
-str r1, [r2, #0x0]
-str r1, [r2, #0x0]
-str r1, [r2, #0x0]
-str r1, [r2, #0x0]
-str r1, [r2]
-str r1, [r2, #0x0]
-strb r0, [r3]
-ldr r0, [sp]
-str r0, [r6]
-mov r6, r0
-cmp r4, #0x0
-bne 0x1000 <embassy_rp::timer::init+0x92> @ imm = #0x0
+str r1, [r6, #0x0]
+str r1, [r6, #0x0]
+str r1, [r6, #0x0]
+str r1, [r6, #0x0]
+str r1, [r6, #0x0]
+str r1, [r6, #0x0]
+str r1, [r6, #0x0]
+str r1, [r6, #0x0]
+strb r0, [r6]
+ldr r0, [sp, #0x0]
+str r0, [r5]
+mov r5, r0
+ldr r0, [sp, #0x0]
+cmp r0, #0x0
+bne 0x1000 <embassy_rp::timer::init+0x8e> @ imm = #0x0
bl 0x1000 <__cpsie> @ imm = #0x0
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xb8>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xb0>
movs r1, #0x0
str r1, [r0]
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xbc>
-str r6, [r0]
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_rp::timer::init+0xb4>
+str r5, [r0]
movs r1, #0x0
str r1, [r0]
movs r1, #0x0
diff --git a/.bins/2023-06-14/dumped/embassy_time/driver/set_alarm.s b/.bins/2023-06-15/dumped/embassy_time/driver/set_alarm.s
index 9e00fce..7b0ce63 100644
--- a/.bins/2023-06-14/dumped/embassy_time/driver/set_alarm.s
+++ b/.bins/2023-06-15/dumped/embassy_time/driver/set_alarm.s
@@ -1,4 +1,5 @@
push {r7, lr}
add r7, sp, #0x0
bl 0x1000 <_embassy_time_set_alarm> @ imm = #0x0
-pop {r7, pc}
\ No newline at end of file
+pop {r7, pc}
+bmi 0x1000 <atomic_polyfill::polyfill::AtomicU32::fetch_and+0x1a> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-15/dumped/embassy_time/duration/Duration/as_micros.s b/.bins/2023-06-15/dumped/embassy_time/duration/Duration/as_micros.s
new file mode 100644
index 0000000..5e83c68
--- /dev/null
+++ b/.bins/2023-06-15/dumped/embassy_time/duration/Duration/as_micros.s
@@ -0,0 +1,5 @@
+ldr r2, [r0]
+ldr r1, [r0, #0x0]
+mov r0, r2
+bx lr
+bmi 0x1000 <embassy_time::driver::allocate_alarm+0x2> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_time/duration/Duration/from_micros_floor.s b/.bins/2023-06-15/dumped/embassy_time/duration/Duration/from_micros_floor.s
index f1fbaa0..530d6ba 100644
--- a/.bins/2023-06-14/dumped/embassy_time/duration/Duration/from_micros_floor.s
+++ b/.bins/2023-06-15/dumped/embassy_time/duration/Duration/from_micros_floor.s
@@ -1,2 +1 @@
-bx lr
-bmi 0x1000 <atomic_polyfill::polyfill::AtomicU32::fetch_or+0x8> @ imm = #0x0
\ No newline at end of file
+bx lr
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_time/instant/Instant/as_micros.s b/.bins/2023-06-14/dumped/embassy_time/instant/Instant/as_micros.s
deleted file mode 100644
index 5fcdc6e..0000000
--- a/.bins/2023-06-14/dumped/embassy_time/instant/Instant/as_micros.s
+++ /dev/null
@@ -1,5 +0,0 @@
-ldr r2, [r0]
-ldr r1, [r0, #0x0]
-mov r0, r2
-bx lr
-bmi 0x1000 <atomic_polyfill::polyfill::AtomicU32::compare_exchange+0x26> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_usb/class/cdc_acm/CdcAcmClass<D>/write_packet/_{{closure}}.s b/.bins/2023-06-15/dumped/embassy_usb/class/cdc_acm/CdcAcmClass<D>/write_packet/_{{closure}}.s
index 6035060..ff6c1f3 100644
--- a/.bins/2023-06-14/dumped/embassy_usb/class/cdc_acm/CdcAcmClass<D>/write_packet/_{{closure}}.s
+++ b/.bins/2023-06-15/dumped/embassy_usb/class/cdc_acm/CdcAcmClass<D>/write_packet/_{{closure}}.s
@@ -15,7 +15,7 @@ cmp r0, #0x0
beq 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x3a> @ imm = #0x0
cmp r0, #0x0
beq 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x24> @ imm = #0x0
-b 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x134> @ imm = #0x0
+b 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x128> @ imm = #0x0
ldr r6, [r4, #0x0]
ldr r0, [r6]
b 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x5e> @ imm = #0x0
@@ -48,7 +48,7 @@ str r6, [r4, #0x0]
cmp r0, #0x0
bhi 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x106> @ imm = #0x0
lsls r0, r0, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x158>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x14c>
adds r0, r2, r0
bl 0x1000 <embassy_sync::waitqueue::atomic_waker::AtomicWaker::register> @ imm = #0x0
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
@@ -59,7 +59,7 @@ lsls r1, r1, #0x0
adds r0, r1, r0
movs r3, #0x0
ldr r1, [r0, r3]
-ldr r6, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x15c>
+ldr r6, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x150>
adds r0, r6, #0x0
tst r1, r0
beq 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x92> @ imm = #0x0
@@ -74,18 +74,18 @@ ldr r2, [r4, #0x0]
ldr r0, [r4, #0x0]
ldrh r1, [r0, #0x0]
cmp r2, r1
-bhi 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x140> @ imm = #0x0
+bhi 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x134> @ imm = #0x0
str r3, [sp, #0x0]
ldr r1, [r4, #0x0]
ldrh r0, [r0]
-ldr r3, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x160>
+ldr r3, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x154>
adds r0, r0, r3
bl 0x1000 <__aeabi_memcpy> @ imm = #0x0
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
str r0, [sp]
ldr r0, [r4, #0x0]
cmp r0, #0x0
-bhs 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x128> @ imm = #0x0
+bhs 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x110> @ imm = #0x0
ldr r2, [r4, #0x0]
ands r2, r6
movs r3, #0x0
@@ -105,11 +105,11 @@ bl 0x1000 <__delay> @ imm = #0x0
bl 0x1000 <embassy_rp::usb::_$LT$impl$u20$embassy_rp..usb..sealed..Instance$u20$for$u20$embassy_rp..peripherals..USB$GT$::dpram> @ imm = #0x0
ldr r1, [r4, #0x0]
cmp r1, #0x0
-bhs 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x128> @ imm = #0x0
+bhs 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x110> @ imm = #0x0
lsls r1, r1, #0x0
adds r0, r1, r0
ldr r1, [r4, #0x0]
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x15c>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x150>
ands r1, r2
orrs r6, r1
movs r1, #0x0
@@ -124,27 +124,22 @@ strb r1, [r5, #0x0]
add sp, #0x0
pop {r4, r5, r6, r7, pc}
movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x154>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x148>
bl 0x1000 <core::panicking::panic_bounds_check> @ imm = #0x0
trap
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x16c>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x158>
movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x170>
-bl 0x1000 <core::panicking::panic> @ imm = #0x0
-trap
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x148>
-movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x150>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x15c>
bl 0x1000 <core::panicking::panic> @ imm = #0x0
trap
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x164>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x13c>
movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x168>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x144>
bl 0x1000 <core::panicking::panic> @ imm = #0x0
trap
-ldr r0, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x148>
+ldr r0, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x13c>
movs r1, #0x0
-ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x14c>
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::class::cdc_acm::CdcAcmClass$LT$D$GT$::write_packet::_$u7b$$u7b$closure$u7d$$u7d$+0x140>
bl 0x1000 <core::panicking::panic> @ imm = #0x0
trap
bl 0x1000 <_defmt_panic> @ imm = #0x0
diff --git a/.bins/2023-06-14/dumped/embassy_usb/descriptor/DescriptorWriter/new.s b/.bins/2023-06-15/dumped/embassy_usb/descriptor/DescriptorWriter/new.s
index 8cd7f9b..7b84a59 100644
--- a/.bins/2023-06-14/dumped/embassy_usb/descriptor/DescriptorWriter/new.s
+++ b/.bins/2023-06-15/dumped/embassy_usb/descriptor/DescriptorWriter/new.s
@@ -5,4 +5,4 @@ str r3, [r0, #0x0]
str r3, [r0, #0x0]
str r3, [r0]
bx lr
-bmi 0x1000 <_$LT$embassy_usb..class..cdc_acm..Control$u20$as$u20$embassy_usb..Handler$GT$::control_in+0x38> @ imm = #0x0
\ No newline at end of file
+bmi 0x1000 <_embassy_time_schedule_wake+0x4e> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/embassy_usb/descriptor_reader/foreach_endpoint.s b/.bins/2023-06-15/dumped/embassy_usb/descriptor_reader/foreach_endpoint.s
index 76456c9..d6706c1 100644
--- a/.bins/2023-06-14/dumped/embassy_usb/descriptor_reader/foreach_endpoint.s
+++ b/.bins/2023-06-15/dumped/embassy_usb/descriptor_reader/foreach_endpoint.s
@@ -1,13 +1,16 @@
push {r4, r5, r6, r7, lr}
add r7, sp, #0x0
sub sp, #0x0
-mov r4, r2
+mov r4, r3
+str r2, [sp]
bl 0x1000 <embassy_usb::descriptor_reader::Reader::new> @ imm = #0x0
str r1, [sp, #0x0]
-str r0, [sp]
-mov r0, sp
+str r0, [sp, #0x0]
+add r0, sp, #0x0
bl 0x1000 <embassy_usb::descriptor_reader::Reader::read_descriptors> @ imm = #0x0
str r0, [sp, #0x0]
+ldr r0, [r4, #0x0]
+str r0, [sp, #0x0]
add r0, sp, #0x0
add r1, sp, #0x0
bl 0x1000 <_$LT$embassy_usb..descriptor_reader..DescriptorIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next> @ imm = #0x0
@@ -16,8 +19,7 @@ cmp r0, #0x0
beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xbc> @ imm = #0x0
movs r5, #0x0
mov r6, r5
-b 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x3c> @ imm = #0x0
-mov r6, r1
+b 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x40> @ imm = #0x0
add r0, sp, #0x0
add r1, sp, #0x0
bl 0x1000 <_$LT$embassy_usb..descriptor_reader..DescriptorIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next> @ imm = #0x0
@@ -26,62 +28,67 @@ cmp r0, #0x0
beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xbc> @ imm = #0x0
ldr r1, [sp, #0x0]
cmp r1, #0x0
-beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xb6> @ imm = #0x0
+beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc2> @ imm = #0x0
add r0, sp, #0x0
ldrb r0, [r0, #0x0]
ldr r2, [sp, #0x0]
str r2, [sp, #0x0]
str r1, [sp, #0x0]
cmp r0, #0x0
-beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x80> @ imm = #0x0
+beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x82> @ imm = #0x0
cmp r0, #0x0
-beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xa0> @ imm = #0x0
+beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xa2> @ imm = #0x0
cmp r0, #0x0
-bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x2e> @ imm = #0x0
+bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x32> @ imm = #0x0
add r0, sp, #0x0
bl 0x1000 <embassy_usb::descriptor_reader::Reader::read_u8> @ imm = #0x0
lsls r0, r0, #0x0
-bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xb6> @ imm = #0x0
+bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc2> @ imm = #0x0
uxtb r0, r5
-ldr r2, [r4]
-ldrb r2, [r2]
+ldr r2, [sp, #0x0]
cmp r2, r0
-bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x2e> @ imm = #0x0
-uxtb r0, r6
-ldr r2, [r4, #0x0]
-ldrb r2, [r2]
-subs r0, r2, r0
+bls 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc8> @ imm = #0x0
+lsls r0, r0, #0x0
+ldrb r0, [r4, r0]
+uxtb r2, r6
+subs r0, r0, r2
rsbs r2, r0, #0
adcs r2, r0
-ldr r0, [r4, #0x0]
+ldr r0, [sp]
bl 0x1000 <_$LT$embassy_rp..usb..Bus$LT$T$GT$$u20$as$u20$embassy_usb_driver..Bus$GT$::endpoint_set_enabled> @ imm = #0x0
-b 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x2e> @ imm = #0x0
+b 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x32> @ imm = #0x0
add r0, sp, #0x0
bl 0x1000 <embassy_usb::descriptor_reader::Reader::read_u16> @ imm = #0x0
lsls r0, r0, #0x0
-bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xb6> @ imm = #0x0
+bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc2> @ imm = #0x0
add r0, sp, #0x0
bl 0x1000 <embassy_usb::descriptor_reader::Reader::read_u8> @ imm = #0x0
lsls r0, r0, #0x0
-bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xb6> @ imm = #0x0
+bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc2> @ imm = #0x0
add r0, sp, #0x0
bl 0x1000 <embassy_usb::descriptor_reader::Reader::read_u8> @ imm = #0x0
lsls r0, r0, #0x0
-beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x2e> @ imm = #0x0
-b 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xb6> @ imm = #0x0
+beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x32> @ imm = #0x0
+b 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc2> @ imm = #0x0
add r0, sp, #0x0
bl 0x1000 <embassy_usb::descriptor_reader::Reader::read_u8> @ imm = #0x0
lsls r0, r0, #0x0
-bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xb6> @ imm = #0x0
+bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc2> @ imm = #0x0
mov r5, r1
add r0, sp, #0x0
bl 0x1000 <embassy_usb::descriptor_reader::Reader::read_u8> @ imm = #0x0
lsls r0, r0, #0x0
-beq 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x2c> @ imm = #0x0
+bne 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xc2> @ imm = #0x0
+mov r6, r1
+b 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x32> @ imm = #0x0
movs r0, #0x0
add sp, #0x0
pop {r4, r5, r6, r7, pc}
movs r0, #0x0
add sp, #0x0
pop {r4, r5, r6, r7, pc}
-bmi 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0x6e> @ imm = #0x0
\ No newline at end of file
+ldr r2, [pc, #0x0] @ 0x1000 <embassy_usb::descriptor_reader::foreach_endpoint+0xd4>
+ldr r1, [sp, #0x0]
+bl 0x1000 <core::panicking::panic_bounds_check> @ imm = #0x0
+trap
+mov r8, r8
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/main.s b/.bins/2023-06-15/dumped/main.s
index 1035621..7a14cba 100644
--- a/.bins/2023-06-14/dumped/main.s
+++ b/.bins/2023-06-15/dumped/main.s
@@ -2,4 +2,4 @@ push {r7, lr}
add r7, sp, #0x0
bl 0x1000 <serial_ws2812_firmware::__cortex_m_rt_main> @ imm = #0x0
trap
-bmi 0x1000 <embassy_executor::arch::thread::Executor::run+0x32> @ imm = #0x0
\ No newline at end of file
+bmi 0x1000 <_$LT$embassy_sync..channel..SendFuture$LT$M$C$T$C$_$GT$$u20$as$u20$core..future..future..Future$GT$::poll+0x7a> @ imm = #0x0
\ No newline at end of file
diff --git a/.bins/2023-06-14/dumped/rp_pac/rosc/vals/FreqRange/to_bits.s b/.bins/2023-06-14/dumped/rp_pac/rosc/vals/FreqRange/to_bits.s
deleted file mode 100644
index 530d6ba..0000000
--- a/.bins/2023-06-14/dumped/rp_pac/rosc/vals/FreqRange/to_bits.s
+++ /dev/null
@@ -1 +0,0 @@
-bx lr
\ No newline at end of file
Metadata
Metadata
Assignees
Labels
Category: This is a bug.Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustcTarget: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 stateTarget: Rust without an operating systemUntriaged performance or correctness regression.