stm32/test: workaround #1426
This commit is contained in:
parent
2bb6e93e86
commit
1078f6f4e7
@ -94,6 +94,9 @@ async fn main(_spawner: Spawner) {
|
|||||||
let rx_fut = async {
|
let rx_fut = async {
|
||||||
rx.read(&mut rx_buf).await.unwrap();
|
rx.read(&mut rx_buf).await.unwrap();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// note: rx needs to be polled first, to workaround this bug:
|
||||||
|
// https://github.com/embassy-rs/embassy/issues/1426
|
||||||
join(rx_fut, tx_fut).await;
|
join(rx_fut, tx_fut).await;
|
||||||
|
|
||||||
assert_eq!(tx_buf, rx_buf);
|
assert_eq!(tx_buf, rx_buf);
|
||||||
|
@ -145,13 +145,16 @@ async fn main(spawner: Spawner) {
|
|||||||
|
|
||||||
#[embassy_executor::task]
|
#[embassy_executor::task]
|
||||||
async fn transmit_task(mut tx: UartTx<'static, board::Uart, board::TxDma>) {
|
async fn transmit_task(mut tx: UartTx<'static, board::Uart, board::TxDma>) {
|
||||||
|
// workaround https://github.com/embassy-rs/embassy/issues/1426
|
||||||
|
Timer::after(Duration::from_millis(100) as _).await;
|
||||||
|
|
||||||
let mut rng = ChaCha8Rng::seed_from_u64(1337);
|
let mut rng = ChaCha8Rng::seed_from_u64(1337);
|
||||||
|
|
||||||
info!("Starting random transmissions into void...");
|
info!("Starting random transmissions into void...");
|
||||||
|
|
||||||
let mut i: u8 = 0;
|
let mut i: u8 = 0;
|
||||||
loop {
|
loop {
|
||||||
let mut buf = [0; 32];
|
let mut buf = [0; 256];
|
||||||
let len = 1 + (rng.next_u32() as usize % buf.len());
|
let len = 1 + (rng.next_u32() as usize % buf.len());
|
||||||
for b in &mut buf[..len] {
|
for b in &mut buf[..len] {
|
||||||
*b = i;
|
*b = i;
|
||||||
@ -172,7 +175,7 @@ async fn receive_task(mut rx: RingBufferedUartRx<'static, board::Uart, board::Rx
|
|||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
let mut expected = 0;
|
let mut expected = 0;
|
||||||
loop {
|
loop {
|
||||||
let mut buf = [0; 100];
|
let mut buf = [0; 256];
|
||||||
let max_len = 1 + (rng.next_u32() as usize % buf.len());
|
let max_len = 1 + (rng.next_u32() as usize % buf.len());
|
||||||
let received = match rx.read(&mut buf[..max_len]).await {
|
let received = match rx.read(&mut buf[..max_len]).await {
|
||||||
Ok(r) => r,
|
Ok(r) => r,
|
||||||
|
Loading…
Reference in New Issue
Block a user