mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-27 12:20:56 +00:00

* Add a timer-driven task * Spawn another timer * Log * foo * Do not access current time on each schedule * Update generic queue * Minimize alarm priorities * Point to github with patches * Fix build without any queue impl selected * Remove explicit generic-queue features * Define cfgs, fix calling something uninitialized * Clean up RefCell+generic queue * Fix arg order * Feature * Fix single integrated-timer queue * Fix next expiration when arming * Add note * Adjust impl to latest changes * Local patch * Refactor the refactor refactor * Track the timer item's owner * Clear owner on dequeue * Clean up * Point at the right branch * Fix panic message * Hide private function * Remove integrated-timer references * Point at upstream embassy * Configure via esp-config * Document, clean up, fix * Hack * Remove patches * Update config separator, test the complex variant * Undo esp-config hack * Remove trouble example, update edge-net * Update test deps * Document * Update bt-hci. * Fix generic queue * Fix panic message * Fix UB * Fix rebase * Resolve UB * Avoid mutable reference in interrupt executor --------- Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
55 lines
1.2 KiB
Rust
55 lines
1.2 KiB
Rust
//! UART TX/RX Async Test
|
|
|
|
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
|
|
//% FEATURES: unstable
|
|
|
|
#![no_std]
|
|
#![no_main]
|
|
|
|
use esp_hal::{
|
|
uart::{self, UartRx, UartTx},
|
|
Async,
|
|
};
|
|
use hil_test as _;
|
|
|
|
struct Context {
|
|
rx: UartRx<'static, Async>,
|
|
tx: UartTx<'static, Async>,
|
|
}
|
|
|
|
#[cfg(test)]
|
|
#[embedded_test::tests(default_timeout = 3, executor = hil_test::Executor::new())]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[init]
|
|
async fn init() -> Context {
|
|
let peripherals = esp_hal::init(esp_hal::Config::default());
|
|
|
|
let (rx, tx) = hil_test::common_test_pins!(peripherals);
|
|
|
|
let tx = UartTx::new(peripherals.UART0, uart::Config::default())
|
|
.unwrap()
|
|
.with_tx(tx)
|
|
.into_async();
|
|
let rx = UartRx::new(peripherals.UART1, uart::Config::default())
|
|
.unwrap()
|
|
.with_rx(rx)
|
|
.into_async();
|
|
|
|
Context { rx, tx }
|
|
}
|
|
|
|
#[test]
|
|
async fn test_send_receive(mut ctx: Context) {
|
|
let byte = [0x42];
|
|
let mut read = [0u8; 1];
|
|
|
|
ctx.tx.flush_async().await.unwrap();
|
|
ctx.tx.write_async(&byte).await.unwrap();
|
|
let _ = ctx.rx.read_async(&mut read).await;
|
|
|
|
assert_eq!(read, byte);
|
|
}
|
|
}
|