diff --git a/embassy-rp/src/dma.rs b/embassy-rp/src/dma.rs index cfaa6dd3..8cf8c394 100644 --- a/embassy-rp/src/dma.rs +++ b/embassy-rp/src/dma.rs @@ -10,7 +10,11 @@ use pac::dma::vals::DataSize; use crate::pac::dma::vals; use crate::{pac, peripherals}; -pub(crate) fn read<'a, C: Channel, W: Word>(ch: impl Peripheral

+ 'a, from: *const W, to: *mut [W]) -> Transfer<'a, C> { +pub(crate) fn read<'a, C: Channel, W: Word>( + ch: impl Peripheral

+ 'a, + from: *const W, + to: *mut [W], +) -> Transfer<'a, C> { let (ptr, len) = crate::dma::slice_ptr_parts_mut(to); copy(ch, from as *const u32, ptr as *mut u32, len, W::size()) } @@ -44,7 +48,7 @@ fn copy<'a, C: Channel>( p.ctrl_trig().write(|w| { w.set_data_size(data_size); - w.set_incr_read(true); + w.set_incr_read(false); w.set_incr_write(true); w.set_chain_to(ch.number()); w.set_en(true); @@ -136,7 +140,9 @@ pub trait Channel: Peripheral

+ sealed::Channel + Into + S STATE.channels[self.number() as usize].waker.register(waker); } - fn on_irq() {} + fn on_irq() { + // FIXME: + } fn degrade(self) -> AnyChannel { AnyChannel { number: self.number() } diff --git a/embassy-rp/src/uart.rs b/embassy-rp/src/uart.rs index 09cadf03..03623a9f 100644 --- a/embassy-rp/src/uart.rs +++ b/embassy-rp/src/uart.rs @@ -441,15 +441,15 @@ mod eh1 { } } - impl<'d, T: Instance> embedded_hal_1::serial::ErrorType for Uart<'d, T> { + impl<'d, T: Instance, M: Mode> embedded_hal_1::serial::ErrorType for Uart<'d, T, M> { type Error = Error; } - impl<'d, T: Instance> embedded_hal_1::serial::ErrorType for UartTx<'d, T> { + impl<'d, T: Instance, M: Mode> embedded_hal_1::serial::ErrorType for UartTx<'d, T, M> { type Error = Error; } - impl<'d, T: Instance> embedded_hal_1::serial::ErrorType for UartRx<'d, T> { + impl<'d, T: Instance, M: Mode> embedded_hal_1::serial::ErrorType for UartRx<'d, T, M> { type Error = Error; } } @@ -458,7 +458,7 @@ cfg_if::cfg_if! { if #[cfg(all(feature = "unstable-traits", feature = "nightly", feature = "_todo_embedded_hal_serial"))] { use core::future::Future; - impl<'d, T: Instance> embedded_hal_async::serial::Write for UartTx<'d, T> + impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Write for UartTx<'d, T, M> { type WriteFuture<'a> = impl Future> + 'a where Self: 'a; @@ -473,7 +473,7 @@ cfg_if::cfg_if! { } } - impl<'d, T: Instance> embedded_hal_async::serial::Read for UartRx<'d, T> + impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Read for UartRx<'d, T, M> { type ReadFuture<'a> = impl Future> + 'a where Self: 'a; @@ -482,7 +482,7 @@ cfg_if::cfg_if! { } } - impl<'d, T: Instance> embedded_hal_async::serial::Write for Uart<'d, T> + impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Write for Uart<'d, T, M> { type WriteFuture<'a> = impl Future> + 'a where Self: 'a; @@ -497,7 +497,7 @@ cfg_if::cfg_if! { } } - impl<'d, T: Instance> embedded_hal_async::serial::Read for Uart<'d, T> + impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Read for Uart<'d, T, M> { type ReadFuture<'a> = impl Future> + 'a where Self: 'a;