From 1dc618f0e4e045de63007893fb36fcaba82acfa4 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Tue, 15 Mar 2022 04:13:33 +0100 Subject: stm32/spi: fix blocking transfer hanging after async. --- tests/stm32/src/bin/spi_dma.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests/stm32/src') diff --git a/tests/stm32/src/bin/spi_dma.rs b/tests/stm32/src/bin/spi_dma.rs index 3e9521ae7..f4f1994c0 100644 --- a/tests/stm32/src/bin/spi_dma.rs +++ b/tests/stm32/src/bin/spi_dma.rs @@ -68,6 +68,22 @@ async fn main(_spawner: Spawner, p: Peripherals) { spi.read::(&mut []).await.unwrap(); spi.write::(&[]).await.unwrap(); + // === Check mixing blocking with async. + spi.blocking_transfer(&mut buf, &data).unwrap(); + assert_eq!(buf, data); + spi.transfer(&mut buf, &data).await.unwrap(); + assert_eq!(buf, data); + spi.blocking_write(&buf).unwrap(); + spi.transfer(&mut buf, &data).await.unwrap(); + assert_eq!(buf, data); + spi.blocking_read(&mut buf).unwrap(); + spi.blocking_write(&buf).unwrap(); + spi.write(&buf).await.unwrap(); + spi.read(&mut buf).await.unwrap(); + spi.blocking_write(&buf).unwrap(); + spi.blocking_read(&mut buf).unwrap(); + spi.write(&buf).await.unwrap(); + info!("Test OK"); cortex_m::asm::bkpt(); } -- cgit