From a5c0d1b79f74865c389360833189ac681a9da6a5 Mon Sep 17 00:00:00 2001 From: William Yager Date: Sat, 13 Jul 2024 15:55:07 -0400 Subject: [PATCH 1/5] Change const asserts to `core::assert` to avoid invoking `defmt::assert` --- embassy-boot/src/boot_loader.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/embassy-boot/src/boot_loader.rs b/embassy-boot/src/boot_loader.rs index 789fa34c1..61d61b96e 100644 --- a/embassy-boot/src/boot_loader.rs +++ b/embassy-boot/src/boot_loader.rs @@ -236,10 +236,10 @@ impl BootLoader Result { const { - assert!(Self::PAGE_SIZE % ACTIVE::WRITE_SIZE as u32 == 0); - assert!(Self::PAGE_SIZE % ACTIVE::ERASE_SIZE as u32 == 0); - assert!(Self::PAGE_SIZE % DFU::WRITE_SIZE as u32 == 0); - assert!(Self::PAGE_SIZE % DFU::ERASE_SIZE as u32 == 0); + core::assert!(Self::PAGE_SIZE % ACTIVE::WRITE_SIZE as u32 == 0); + core::assert!(Self::PAGE_SIZE % ACTIVE::ERASE_SIZE as u32 == 0); + core::assert!(Self::PAGE_SIZE % DFU::WRITE_SIZE as u32 == 0); + core::assert!(Self::PAGE_SIZE % DFU::ERASE_SIZE as u32 == 0); } // Ensure we have enough progress pages to store copy progress From 08f1454527d832f80f6816f7672d2cb91dd6e848 Mon Sep 17 00:00:00 2001 From: rafael Date: Sun, 14 Jul 2024 16:35:05 +0200 Subject: [PATCH 2/5] nrf --- embassy-nrf/src/buffered_uarte.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs index 8e4064aaa..ef34e2e32 100644 --- a/embassy-nrf/src/buffered_uarte.rs +++ b/embassy-nrf/src/buffered_uarte.rs @@ -766,6 +766,12 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarteRx<'d, U, T> { rx.pop_done(amt); U::regs().intenset.write(|w| w.rxstarted().set()); } + + /// we are ready to read if there is data in the buffer + fn read_ready() -> Result { + let state = T::buffered_state(); + Ok(!state.rx_buf.is_empty()) + } } impl<'a, U: UarteInstance, T: TimerInstance> Drop for BufferedUarteRx<'a, U, T> { @@ -827,6 +833,18 @@ mod _embedded_io { } } + impl<'d, U: UarteInstance, T: TimerInstance + 'd> embedded_io_async::ReadReady for BufferedUarte<'d, U, T> { + fn read_ready(&mut self) -> Result { + BufferedUarteRx::<'d, T>::read_ready() + } + } + + impl<'d, U: UarteInstance, T: TimerInstance + 'd> embedded_io_async::ReadReady for BufferedUarteRx<'d, U, T> { + fn read_ready(&mut self) -> Result { + Self::read_ready() + } + } + impl<'d, U: UarteInstance, T: TimerInstance> embedded_io_async::BufRead for BufferedUarte<'d, U, T> { async fn fill_buf(&mut self) -> Result<&[u8], Self::Error> { self.fill_buf().await From c7f775dc20df2df4ceb3fb75d7228b2e37121e0b Mon Sep 17 00:00:00 2001 From: rafael Date: Sun, 14 Jul 2024 16:42:54 +0200 Subject: [PATCH 3/5] stm --- embassy-stm32/src/usart/buffered.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/embassy-stm32/src/usart/buffered.rs b/embassy-stm32/src/usart/buffered.rs index 33bc009a8..eb639942c 100644 --- a/embassy-stm32/src/usart/buffered.rs +++ b/embassy-stm32/src/usart/buffered.rs @@ -436,6 +436,12 @@ impl<'d> BufferedUartRx<'d> { } } + /// we are ready to read if there is data in the buffer + fn read_ready() -> Result { + let state = T::buffered_state(); + Ok(!state.rx_buf.is_empty()) + } + /// Reconfigure the driver pub fn set_config(&mut self, config: &Config) -> Result<(), ConfigError> { reconfigure(self.info, self.kernel_clock, config)?; @@ -610,6 +616,18 @@ impl<'d> embedded_io_async::Read for BufferedUartRx<'d> { } } +impl<'d> embedded_io_async::ReadReady for BufferedUart<'d> { + fn read_ready(&mut self) -> Result { + BufferedUartRx::<'d>::read_ready() + } +} + +impl<'d> embedded_io_async::ReadReady for BufferedUartRx<'d> { + fn read_ready(&mut self) -> Result { + Self::read_ready() + } +} + impl<'d> embedded_io_async::BufRead for BufferedUart<'d> { async fn fill_buf(&mut self) -> Result<&[u8], Self::Error> { self.rx.fill_buf().await From f5ebdebd96a7b72403fa3fee82b2f12de94499ef Mon Sep 17 00:00:00 2001 From: rafael Date: Sun, 14 Jul 2024 17:34:50 +0200 Subject: [PATCH 4/5] nrf after cargo check --- embassy-nrf/src/buffered_uarte.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs index ef34e2e32..b368a3d33 100644 --- a/embassy-nrf/src/buffered_uarte.rs +++ b/embassy-nrf/src/buffered_uarte.rs @@ -769,7 +769,7 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarteRx<'d, U, T> { /// we are ready to read if there is data in the buffer fn read_ready() -> Result { - let state = T::buffered_state(); + let state = U::buffered_state(); Ok(!state.rx_buf.is_empty()) } } @@ -835,7 +835,7 @@ mod _embedded_io { impl<'d, U: UarteInstance, T: TimerInstance + 'd> embedded_io_async::ReadReady for BufferedUarte<'d, U, T> { fn read_ready(&mut self) -> Result { - BufferedUarteRx::<'d, T>::read_ready() + BufferedUarteRx::<'d, U, T>::read_ready() } } From d9ea5cb015f015c84013250db36a1332f6df3986 Mon Sep 17 00:00:00 2001 From: rafael Date: Sun, 14 Jul 2024 17:56:56 +0200 Subject: [PATCH 5/5] stm after cargo fix --- embassy-stm32/src/usart/buffered.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/embassy-stm32/src/usart/buffered.rs b/embassy-stm32/src/usart/buffered.rs index eb639942c..06cc0e41d 100644 --- a/embassy-stm32/src/usart/buffered.rs +++ b/embassy-stm32/src/usart/buffered.rs @@ -437,8 +437,8 @@ impl<'d> BufferedUartRx<'d> { } /// we are ready to read if there is data in the buffer - fn read_ready() -> Result { - let state = T::buffered_state(); + fn read_ready(&mut self) -> Result { + let state = self.state; Ok(!state.rx_buf.is_empty()) } @@ -618,13 +618,13 @@ impl<'d> embedded_io_async::Read for BufferedUartRx<'d> { impl<'d> embedded_io_async::ReadReady for BufferedUart<'d> { fn read_ready(&mut self) -> Result { - BufferedUartRx::<'d>::read_ready() + BufferedUartRx::<'d>::read_ready(&mut self.rx) } } impl<'d> embedded_io_async::ReadReady for BufferedUartRx<'d> { fn read_ready(&mut self) -> Result { - Self::read_ready() + Self::read_ready(self) } }