aboutsummaryrefslogtreecommitdiff
path: root/examples/rp/src/bin/uart_buffered_split.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-06-01 01:32:11 +0200
committerDario Nieuwenhuis <[email protected]>2023-06-01 01:42:34 +0200
commit1d8321b821d114b369d5a087a1a7a6600228b032 (patch)
tree605b3eb96ea10120f7e8bf0741bcc34daab8e9ec /examples/rp/src/bin/uart_buffered_split.rs
parentd7d66bd74f2ef1bc8903b15df630ddbb8fe97df4 (diff)
Use make_static! from static-cell v1.1
Diffstat (limited to 'examples/rp/src/bin/uart_buffered_split.rs')
-rw-r--r--examples/rp/src/bin/uart_buffered_split.rs15
1 files changed, 3 insertions, 12 deletions
diff --git a/examples/rp/src/bin/uart_buffered_split.rs b/examples/rp/src/bin/uart_buffered_split.rs
index d6f01b4de..9df99bd58 100644
--- a/examples/rp/src/bin/uart_buffered_split.rs
+++ b/examples/rp/src/bin/uart_buffered_split.rs
@@ -4,34 +4,25 @@
4 4
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_executor::_export::StaticCell;
8use embassy_rp::bind_interrupts; 7use embassy_rp::bind_interrupts;
9use embassy_rp::peripherals::UART0; 8use embassy_rp::peripherals::UART0;
10use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config}; 9use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config};
11use embassy_time::{Duration, Timer}; 10use embassy_time::{Duration, Timer};
12use embedded_io::asynch::{Read, Write}; 11use embedded_io::asynch::{Read, Write};
12use static_cell::make_static;
13use {defmt_rtt as _, panic_probe as _}; 13use {defmt_rtt as _, panic_probe as _};
14 14
15bind_interrupts!(struct Irqs { 15bind_interrupts!(struct Irqs {
16 UART0_IRQ => BufferedInterruptHandler<UART0>; 16 UART0_IRQ => BufferedInterruptHandler<UART0>;
17}); 17});
18 18
19macro_rules! singleton {
20 ($val:expr) => {{
21 type T = impl Sized;
22 static STATIC_CELL: StaticCell<T> = StaticCell::new();
23 let (x,) = STATIC_CELL.init(($val,));
24 x
25 }};
26}
27
28#[embassy_executor::main] 19#[embassy_executor::main]
29async fn main(spawner: Spawner) { 20async fn main(spawner: Spawner) {
30 let p = embassy_rp::init(Default::default()); 21 let p = embassy_rp::init(Default::default());
31 let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0); 22 let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0);
32 23
33 let tx_buf = &mut singleton!([0u8; 16])[..]; 24 let tx_buf = &mut make_static!([0u8; 16])[..];
34 let rx_buf = &mut singleton!([0u8; 16])[..]; 25 let rx_buf = &mut make_static!([0u8; 16])[..];
35 let uart = BufferedUart::new(uart, Irqs, tx_pin, rx_pin, tx_buf, rx_buf, Config::default()); 26 let uart = BufferedUart::new(uart, Irqs, tx_pin, rx_pin, tx_buf, rx_buf, Config::default());
36 let (rx, mut tx) = uart.split(); 27 let (rx, mut tx) = uart.split();
37 28