aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/stm32/src/bin/usart_dma.rs3
-rw-r--r--tests/stm32/src/bin/usart_rx_ringbuffered.rs7
2 files changed, 8 insertions, 2 deletions
diff --git a/tests/stm32/src/bin/usart_dma.rs b/tests/stm32/src/bin/usart_dma.rs
index de6cd41d1..62444f0a8 100644
--- a/tests/stm32/src/bin/usart_dma.rs
+++ b/tests/stm32/src/bin/usart_dma.rs
@@ -94,6 +94,9 @@ async fn main(_spawner: Spawner) {
94 let rx_fut = async { 94 let rx_fut = async {
95 rx.read(&mut rx_buf).await.unwrap(); 95 rx.read(&mut rx_buf).await.unwrap();
96 }; 96 };
97
98 // note: rx needs to be polled first, to workaround this bug:
99 // https://github.com/embassy-rs/embassy/issues/1426
97 join(rx_fut, tx_fut).await; 100 join(rx_fut, tx_fut).await;
98 101
99 assert_eq!(tx_buf, rx_buf); 102 assert_eq!(tx_buf, rx_buf);
diff --git a/tests/stm32/src/bin/usart_rx_ringbuffered.rs b/tests/stm32/src/bin/usart_rx_ringbuffered.rs
index 2c4a8fdf4..9d75dbe55 100644
--- a/tests/stm32/src/bin/usart_rx_ringbuffered.rs
+++ b/tests/stm32/src/bin/usart_rx_ringbuffered.rs
@@ -145,13 +145,16 @@ async fn main(spawner: Spawner) {
145 145
146#[embassy_executor::task] 146#[embassy_executor::task]
147async fn transmit_task(mut tx: UartTx<'static, board::Uart, board::TxDma>) { 147async fn transmit_task(mut tx: UartTx<'static, board::Uart, board::TxDma>) {
148 // workaround https://github.com/embassy-rs/embassy/issues/1426
149 Timer::after(Duration::from_millis(100) as _).await;
150
148 let mut rng = ChaCha8Rng::seed_from_u64(1337); 151 let mut rng = ChaCha8Rng::seed_from_u64(1337);
149 152
150 info!("Starting random transmissions into void..."); 153 info!("Starting random transmissions into void...");
151 154
152 let mut i: u8 = 0; 155 let mut i: u8 = 0;
153 loop { 156 loop {
154 let mut buf = [0; 32]; 157 let mut buf = [0; 256];
155 let len = 1 + (rng.next_u32() as usize % buf.len()); 158 let len = 1 + (rng.next_u32() as usize % buf.len());
156 for b in &mut buf[..len] { 159 for b in &mut buf[..len] {
157 *b = i; 160 *b = i;
@@ -172,7 +175,7 @@ async fn receive_task(mut rx: RingBufferedUartRx<'static, board::Uart, board::Rx
172 let mut i = 0; 175 let mut i = 0;
173 let mut expected = 0; 176 let mut expected = 0;
174 loop { 177 loop {
175 let mut buf = [0; 100]; 178 let mut buf = [0; 256];
176 let max_len = 1 + (rng.next_u32() as usize % buf.len()); 179 let max_len = 1 + (rng.next_u32() as usize % buf.len());
177 let received = match rx.read(&mut buf[..max_len]).await { 180 let received = match rx.read(&mut buf[..max_len]).await {
178 Ok(r) => r, 181 Ok(r) => r,