diff options
| author | Ulf Lilleengen <[email protected]> | 2023-12-21 10:02:11 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-12-21 10:02:11 +0000 |
| commit | 530ead5fdeba97dd7d84798463436d1c75bbe96e (patch) | |
| tree | 40c027b0f69efe9a9edb9913c0c1122a9b608318 /examples/rp/src/bin | |
| parent | 8442e72589f47182f8ca1c979c668afc800e5d1e (diff) | |
| parent | 0acf7b09c3bc9176d00479d601356d8df2537a9b (diff) | |
Merge pull request #2339 from embassy-rs/make-static-remove
Replace make_static! macro usage with non-macro version
Diffstat (limited to 'examples/rp/src/bin')
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_multisocket.rs | 13 | ||||
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_tcp_client.rs | 13 | ||||
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_tcp_server.rs | 13 | ||||
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_udp.rs | 13 | ||||
| -rw-r--r-- | examples/rp/src/bin/uart_buffered_split.rs | 8 | ||||
| -rw-r--r-- | examples/rp/src/bin/usb_ethernet.rs | 28 | ||||
| -rw-r--r-- | examples/rp/src/bin/wifi_ap_tcp_server.rs | 13 | ||||
| -rw-r--r-- | examples/rp/src/bin/wifi_blinky.rs | 5 | ||||
| -rw-r--r-- | examples/rp/src/bin/wifi_scan.rs | 5 | ||||
| -rw-r--r-- | examples/rp/src/bin/wifi_tcp_server.rs | 13 |
10 files changed, 77 insertions, 47 deletions
diff --git a/examples/rp/src/bin/ethernet_w5500_multisocket.rs b/examples/rp/src/bin/ethernet_w5500_multisocket.rs index c0fde62ab..b9dba0f1d 100644 --- a/examples/rp/src/bin/ethernet_w5500_multisocket.rs +++ b/examples/rp/src/bin/ethernet_w5500_multisocket.rs | |||
| @@ -20,7 +20,7 @@ use embassy_time::{Delay, Duration}; | |||
| 20 | use embedded_hal_bus::spi::ExclusiveDevice; | 20 | use embedded_hal_bus::spi::ExclusiveDevice; |
| 21 | use embedded_io_async::Write; | 21 | use embedded_io_async::Write; |
| 22 | use rand::RngCore; | 22 | use rand::RngCore; |
| 23 | use static_cell::make_static; | 23 | use static_cell::StaticCell; |
| 24 | use {defmt_rtt as _, panic_probe as _}; | 24 | use {defmt_rtt as _, panic_probe as _}; |
| 25 | 25 | ||
| 26 | #[embassy_executor::task] | 26 | #[embassy_executor::task] |
| @@ -55,7 +55,8 @@ async fn main(spawner: Spawner) { | |||
| 55 | let w5500_reset = Output::new(p.PIN_20, Level::High); | 55 | let w5500_reset = Output::new(p.PIN_20, Level::High); |
| 56 | 56 | ||
| 57 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 57 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 58 | let state = make_static!(State::<8, 8>::new()); | 58 | static STATE: StaticCell<State<8, 8>> = StaticCell::new(); |
| 59 | let state = STATE.init(State::<8, 8>::new()); | ||
| 59 | let (device, runner) = embassy_net_wiznet::new( | 60 | let (device, runner) = embassy_net_wiznet::new( |
| 60 | mac_addr, | 61 | mac_addr, |
| 61 | state, | 62 | state, |
| @@ -70,11 +71,13 @@ async fn main(spawner: Spawner) { | |||
| 70 | let seed = rng.next_u64(); | 71 | let seed = rng.next_u64(); |
| 71 | 72 | ||
| 72 | // Init network stack | 73 | // Init network stack |
| 73 | let stack = &*make_static!(Stack::new( | 74 | static STACK: StaticCell<Stack<Device<'static>>> = StaticCell::new(); |
| 75 | static RESOURCES: StaticCell<StackResources<3>> = StaticCell::new(); | ||
| 76 | let stack = &*STACK.init(Stack::new( | ||
| 74 | device, | 77 | device, |
| 75 | embassy_net::Config::dhcpv4(Default::default()), | 78 | embassy_net::Config::dhcpv4(Default::default()), |
| 76 | make_static!(StackResources::<3>::new()), | 79 | RESOURCES.init(StackResources::<3>::new()), |
| 77 | seed | 80 | seed, |
| 78 | )); | 81 | )); |
| 79 | 82 | ||
| 80 | // Launch network task | 83 | // Launch network task |
diff --git a/examples/rp/src/bin/ethernet_w5500_tcp_client.rs b/examples/rp/src/bin/ethernet_w5500_tcp_client.rs index b19362fc1..36073f20b 100644 --- a/examples/rp/src/bin/ethernet_w5500_tcp_client.rs +++ b/examples/rp/src/bin/ethernet_w5500_tcp_client.rs | |||
| @@ -22,7 +22,7 @@ use embassy_time::{Delay, Duration, Timer}; | |||
| 22 | use embedded_hal_bus::spi::ExclusiveDevice; | 22 | use embedded_hal_bus::spi::ExclusiveDevice; |
| 23 | use embedded_io_async::Write; | 23 | use embedded_io_async::Write; |
| 24 | use rand::RngCore; | 24 | use rand::RngCore; |
| 25 | use static_cell::make_static; | 25 | use static_cell::StaticCell; |
| 26 | use {defmt_rtt as _, panic_probe as _}; | 26 | use {defmt_rtt as _, panic_probe as _}; |
| 27 | 27 | ||
| 28 | #[embassy_executor::task] | 28 | #[embassy_executor::task] |
| @@ -58,7 +58,8 @@ async fn main(spawner: Spawner) { | |||
| 58 | let w5500_reset = Output::new(p.PIN_20, Level::High); | 58 | let w5500_reset = Output::new(p.PIN_20, Level::High); |
| 59 | 59 | ||
| 60 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 60 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 61 | let state = make_static!(State::<8, 8>::new()); | 61 | static STATE: StaticCell<State<8, 8>> = StaticCell::new(); |
| 62 | let state = STATE.init(State::<8, 8>::new()); | ||
| 62 | let (device, runner) = embassy_net_wiznet::new( | 63 | let (device, runner) = embassy_net_wiznet::new( |
| 63 | mac_addr, | 64 | mac_addr, |
| 64 | state, | 65 | state, |
| @@ -73,11 +74,13 @@ async fn main(spawner: Spawner) { | |||
| 73 | let seed = rng.next_u64(); | 74 | let seed = rng.next_u64(); |
| 74 | 75 | ||
| 75 | // Init network stack | 76 | // Init network stack |
| 76 | let stack = &*make_static!(Stack::new( | 77 | static STACK: StaticCell<Stack<Device<'static>>> = StaticCell::new(); |
| 78 | static RESOURCES: StaticCell<StackResources<2>> = StaticCell::new(); | ||
| 79 | let stack = &*STACK.init(Stack::new( | ||
| 77 | device, | 80 | device, |
| 78 | embassy_net::Config::dhcpv4(Default::default()), | 81 | embassy_net::Config::dhcpv4(Default::default()), |
| 79 | make_static!(StackResources::<2>::new()), | 82 | RESOURCES.init(StackResources::<2>::new()), |
| 80 | seed | 83 | seed, |
| 81 | )); | 84 | )); |
| 82 | 85 | ||
| 83 | // Launch network task | 86 | // Launch network task |
diff --git a/examples/rp/src/bin/ethernet_w5500_tcp_server.rs b/examples/rp/src/bin/ethernet_w5500_tcp_server.rs index c62caed7a..d523a8772 100644 --- a/examples/rp/src/bin/ethernet_w5500_tcp_server.rs +++ b/examples/rp/src/bin/ethernet_w5500_tcp_server.rs | |||
| @@ -21,7 +21,7 @@ use embassy_time::{Delay, Duration}; | |||
| 21 | use embedded_hal_bus::spi::ExclusiveDevice; | 21 | use embedded_hal_bus::spi::ExclusiveDevice; |
| 22 | use embedded_io_async::Write; | 22 | use embedded_io_async::Write; |
| 23 | use rand::RngCore; | 23 | use rand::RngCore; |
| 24 | use static_cell::make_static; | 24 | use static_cell::StaticCell; |
| 25 | use {defmt_rtt as _, panic_probe as _}; | 25 | use {defmt_rtt as _, panic_probe as _}; |
| 26 | 26 | ||
| 27 | #[embassy_executor::task] | 27 | #[embassy_executor::task] |
| @@ -57,7 +57,8 @@ async fn main(spawner: Spawner) { | |||
| 57 | let w5500_reset = Output::new(p.PIN_20, Level::High); | 57 | let w5500_reset = Output::new(p.PIN_20, Level::High); |
| 58 | 58 | ||
| 59 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 59 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 60 | let state = make_static!(State::<8, 8>::new()); | 60 | static STATE: StaticCell<State<8, 8>> = StaticCell::new(); |
| 61 | let state = STATE.init(State::<8, 8>::new()); | ||
| 61 | let (device, runner) = embassy_net_wiznet::new( | 62 | let (device, runner) = embassy_net_wiznet::new( |
| 62 | mac_addr, | 63 | mac_addr, |
| 63 | state, | 64 | state, |
| @@ -72,11 +73,13 @@ async fn main(spawner: Spawner) { | |||
| 72 | let seed = rng.next_u64(); | 73 | let seed = rng.next_u64(); |
| 73 | 74 | ||
| 74 | // Init network stack | 75 | // Init network stack |
| 75 | let stack = &*make_static!(Stack::new( | 76 | static STACK: StaticCell<Stack<Device<'static>>> = StaticCell::new(); |
| 77 | static RESOURCES: StaticCell<StackResources<2>> = StaticCell::new(); | ||
| 78 | let stack = &*STACK.init(Stack::new( | ||
| 76 | device, | 79 | device, |
| 77 | embassy_net::Config::dhcpv4(Default::default()), | 80 | embassy_net::Config::dhcpv4(Default::default()), |
| 78 | make_static!(StackResources::<2>::new()), | 81 | RESOURCES.init(StackResources::<2>::new()), |
| 79 | seed | 82 | seed, |
| 80 | )); | 83 | )); |
| 81 | 84 | ||
| 82 | // Launch network task | 85 | // Launch network task |
diff --git a/examples/rp/src/bin/ethernet_w5500_udp.rs b/examples/rp/src/bin/ethernet_w5500_udp.rs index 76dabce1c..0cc47cb56 100644 --- a/examples/rp/src/bin/ethernet_w5500_udp.rs +++ b/examples/rp/src/bin/ethernet_w5500_udp.rs | |||
| @@ -20,7 +20,7 @@ use embassy_rp::spi::{Async, Config as SpiConfig, Spi}; | |||
| 20 | use embassy_time::Delay; | 20 | use embassy_time::Delay; |
| 21 | use embedded_hal_bus::spi::ExclusiveDevice; | 21 | use embedded_hal_bus::spi::ExclusiveDevice; |
| 22 | use rand::RngCore; | 22 | use rand::RngCore; |
| 23 | use static_cell::make_static; | 23 | use static_cell::StaticCell; |
| 24 | use {defmt_rtt as _, panic_probe as _}; | 24 | use {defmt_rtt as _, panic_probe as _}; |
| 25 | 25 | ||
| 26 | #[embassy_executor::task] | 26 | #[embassy_executor::task] |
| @@ -55,7 +55,8 @@ async fn main(spawner: Spawner) { | |||
| 55 | let w5500_reset = Output::new(p.PIN_20, Level::High); | 55 | let w5500_reset = Output::new(p.PIN_20, Level::High); |
| 56 | 56 | ||
| 57 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 57 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 58 | let state = make_static!(State::<8, 8>::new()); | 58 | static STATE: StaticCell<State<8, 8>> = StaticCell::new(); |
| 59 | let state = STATE.init(State::<8, 8>::new()); | ||
| 59 | let (device, runner) = embassy_net_wiznet::new( | 60 | let (device, runner) = embassy_net_wiznet::new( |
| 60 | mac_addr, | 61 | mac_addr, |
| 61 | state, | 62 | state, |
| @@ -70,11 +71,13 @@ async fn main(spawner: Spawner) { | |||
| 70 | let seed = rng.next_u64(); | 71 | let seed = rng.next_u64(); |
| 71 | 72 | ||
| 72 | // Init network stack | 73 | // Init network stack |
| 73 | let stack = &*make_static!(Stack::new( | 74 | static STACK: StaticCell<Stack<Device<'static>>> = StaticCell::new(); |
| 75 | static RESOURCES: StaticCell<StackResources<2>> = StaticCell::new(); | ||
| 76 | let stack = &*STACK.init(Stack::new( | ||
| 74 | device, | 77 | device, |
| 75 | embassy_net::Config::dhcpv4(Default::default()), | 78 | embassy_net::Config::dhcpv4(Default::default()), |
| 76 | make_static!(StackResources::<2>::new()), | 79 | RESOURCES.init(StackResources::<2>::new()), |
| 77 | seed | 80 | seed, |
| 78 | )); | 81 | )); |
| 79 | 82 | ||
| 80 | // Launch network task | 83 | // Launch network task |
diff --git a/examples/rp/src/bin/uart_buffered_split.rs b/examples/rp/src/bin/uart_buffered_split.rs index 14e8810a4..dc57d89c7 100644 --- a/examples/rp/src/bin/uart_buffered_split.rs +++ b/examples/rp/src/bin/uart_buffered_split.rs | |||
| @@ -15,7 +15,7 @@ use embassy_rp::peripherals::UART0; | |||
| 15 | use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config}; | 15 | use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart, BufferedUartRx, Config}; |
| 16 | use embassy_time::Timer; | 16 | use embassy_time::Timer; |
| 17 | use embedded_io_async::{Read, Write}; | 17 | use embedded_io_async::{Read, Write}; |
| 18 | use static_cell::make_static; | 18 | use static_cell::StaticCell; |
| 19 | use {defmt_rtt as _, panic_probe as _}; | 19 | use {defmt_rtt as _, panic_probe as _}; |
| 20 | 20 | ||
| 21 | bind_interrupts!(struct Irqs { | 21 | bind_interrupts!(struct Irqs { |
| @@ -27,8 +27,10 @@ async fn main(spawner: Spawner) { | |||
| 27 | let p = embassy_rp::init(Default::default()); | 27 | let p = embassy_rp::init(Default::default()); |
| 28 | let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0); | 28 | let (tx_pin, rx_pin, uart) = (p.PIN_0, p.PIN_1, p.UART0); |
| 29 | 29 | ||
| 30 | let tx_buf = &mut make_static!([0u8; 16])[..]; | 30 | static TX_BUF: StaticCell<[u8; 16]> = StaticCell::new(); |
| 31 | let rx_buf = &mut make_static!([0u8; 16])[..]; | 31 | let tx_buf = &mut TX_BUF.init([0; 16])[..]; |
| 32 | static RX_BUF: StaticCell<[u8; 16]> = StaticCell::new(); | ||
| 33 | let rx_buf = &mut RX_BUF.init([0; 16])[..]; | ||
| 32 | let uart = BufferedUart::new(uart, Irqs, tx_pin, rx_pin, tx_buf, rx_buf, Config::default()); | 34 | let uart = BufferedUart::new(uart, Irqs, tx_pin, rx_pin, tx_buf, rx_buf, Config::default()); |
| 33 | let (rx, mut tx) = uart.split(); | 35 | let (rx, mut tx) = uart.split(); |
| 34 | 36 | ||
diff --git a/examples/rp/src/bin/usb_ethernet.rs b/examples/rp/src/bin/usb_ethernet.rs index cc63029fb..674b83f5d 100644 --- a/examples/rp/src/bin/usb_ethernet.rs +++ b/examples/rp/src/bin/usb_ethernet.rs | |||
| @@ -17,7 +17,7 @@ use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState | |||
| 17 | use embassy_usb::class::cdc_ncm::{CdcNcmClass, State}; | 17 | use embassy_usb::class::cdc_ncm::{CdcNcmClass, State}; |
| 18 | use embassy_usb::{Builder, Config, UsbDevice}; | 18 | use embassy_usb::{Builder, Config, UsbDevice}; |
| 19 | use embedded_io_async::Write; | 19 | use embedded_io_async::Write; |
| 20 | use static_cell::make_static; | 20 | use static_cell::StaticCell; |
| 21 | use {defmt_rtt as _, panic_probe as _}; | 21 | use {defmt_rtt as _, panic_probe as _}; |
| 22 | 22 | ||
| 23 | bind_interrupts!(struct Irqs { | 23 | bind_interrupts!(struct Irqs { |
| @@ -65,14 +65,18 @@ async fn main(spawner: Spawner) { | |||
| 65 | config.device_protocol = 0x01; | 65 | config.device_protocol = 0x01; |
| 66 | 66 | ||
| 67 | // Create embassy-usb DeviceBuilder using the driver and config. | 67 | // Create embassy-usb DeviceBuilder using the driver and config. |
| 68 | static DEVICE_DESC: StaticCell<[u8; 256]> = StaticCell::new(); | ||
| 69 | static CONFIG_DESC: StaticCell<[u8; 256]> = StaticCell::new(); | ||
| 70 | static BOS_DESC: StaticCell<[u8; 256]> = StaticCell::new(); | ||
| 71 | static CONTROL_BUF: StaticCell<[u8; 128]> = StaticCell::new(); | ||
| 68 | let mut builder = Builder::new( | 72 | let mut builder = Builder::new( |
| 69 | driver, | 73 | driver, |
| 70 | config, | 74 | config, |
| 71 | &mut make_static!([0; 256])[..], | 75 | &mut DEVICE_DESC.init([0; 256])[..], |
| 72 | &mut make_static!([0; 256])[..], | 76 | &mut CONFIG_DESC.init([0; 256])[..], |
| 73 | &mut make_static!([0; 256])[..], | 77 | &mut BOS_DESC.init([0; 256])[..], |
| 74 | &mut [], // no msos descriptors | 78 | &mut [], // no msos descriptors |
| 75 | &mut make_static!([0; 128])[..], | 79 | &mut CONTROL_BUF.init([0; 128])[..], |
| 76 | ); | 80 | ); |
| 77 | 81 | ||
| 78 | // Our MAC addr. | 82 | // Our MAC addr. |
| @@ -81,14 +85,16 @@ async fn main(spawner: Spawner) { | |||
| 81 | let host_mac_addr = [0x88, 0x88, 0x88, 0x88, 0x88, 0x88]; | 85 | let host_mac_addr = [0x88, 0x88, 0x88, 0x88, 0x88, 0x88]; |
| 82 | 86 | ||
| 83 | // Create classes on the builder. | 87 | // Create classes on the builder. |
| 84 | let class = CdcNcmClass::new(&mut builder, make_static!(State::new()), host_mac_addr, 64); | 88 | static STATE: StaticCell<State> = StaticCell::new(); |
| 89 | let class = CdcNcmClass::new(&mut builder, STATE.init(State::new()), host_mac_addr, 64); | ||
| 85 | 90 | ||
| 86 | // Build the builder. | 91 | // Build the builder. |
| 87 | let usb = builder.build(); | 92 | let usb = builder.build(); |
| 88 | 93 | ||
| 89 | unwrap!(spawner.spawn(usb_task(usb))); | 94 | unwrap!(spawner.spawn(usb_task(usb))); |
| 90 | 95 | ||
| 91 | let (runner, device) = class.into_embassy_net_device::<MTU, 4, 4>(make_static!(NetState::new()), our_mac_addr); | 96 | static NET_STATE: StaticCell<NetState<MTU, 4, 4>> = StaticCell::new(); |
| 97 | let (runner, device) = class.into_embassy_net_device::<MTU, 4, 4>(NET_STATE.init(NetState::new()), our_mac_addr); | ||
| 92 | unwrap!(spawner.spawn(usb_ncm_task(runner))); | 98 | unwrap!(spawner.spawn(usb_ncm_task(runner))); |
| 93 | 99 | ||
| 94 | let config = embassy_net::Config::dhcpv4(Default::default()); | 100 | let config = embassy_net::Config::dhcpv4(Default::default()); |
| @@ -102,11 +108,13 @@ async fn main(spawner: Spawner) { | |||
| 102 | let seed = 1234; // guaranteed random, chosen by a fair dice roll | 108 | let seed = 1234; // guaranteed random, chosen by a fair dice roll |
| 103 | 109 | ||
| 104 | // Init network stack | 110 | // Init network stack |
| 105 | let stack = &*make_static!(Stack::new( | 111 | static STACK: StaticCell<Stack<Device<'static, MTU>>> = StaticCell::new(); |
| 112 | static RESOURCES: StaticCell<StackResources<2>> = StaticCell::new(); | ||
| 113 | let stack = &*STACK.init(Stack::new( | ||
| 106 | device, | 114 | device, |
| 107 | config, | 115 | config, |
| 108 | make_static!(StackResources::<2>::new()), | 116 | RESOURCES.init(StackResources::<2>::new()), |
| 109 | seed | 117 | seed, |
| 110 | )); | 118 | )); |
| 111 | 119 | ||
| 112 | unwrap!(spawner.spawn(net_task(stack))); | 120 | unwrap!(spawner.spawn(net_task(stack))); |
diff --git a/examples/rp/src/bin/wifi_ap_tcp_server.rs b/examples/rp/src/bin/wifi_ap_tcp_server.rs index ad1fa6462..20b8aad15 100644 --- a/examples/rp/src/bin/wifi_ap_tcp_server.rs +++ b/examples/rp/src/bin/wifi_ap_tcp_server.rs | |||
| @@ -19,7 +19,7 @@ use embassy_rp::peripherals::{DMA_CH0, PIN_23, PIN_25, PIO0}; | |||
| 19 | use embassy_rp::pio::{InterruptHandler, Pio}; | 19 | use embassy_rp::pio::{InterruptHandler, Pio}; |
| 20 | use embassy_time::Duration; | 20 | use embassy_time::Duration; |
| 21 | use embedded_io_async::Write; | 21 | use embedded_io_async::Write; |
| 22 | use static_cell::make_static; | 22 | use static_cell::StaticCell; |
| 23 | use {defmt_rtt as _, panic_probe as _}; | 23 | use {defmt_rtt as _, panic_probe as _}; |
| 24 | 24 | ||
| 25 | bind_interrupts!(struct Irqs { | 25 | bind_interrupts!(struct Irqs { |
| @@ -59,7 +59,8 @@ async fn main(spawner: Spawner) { | |||
| 59 | let mut pio = Pio::new(p.PIO0, Irqs); | 59 | let mut pio = Pio::new(p.PIO0, Irqs); |
| 60 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); | 60 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); |
| 61 | 61 | ||
| 62 | let state = make_static!(cyw43::State::new()); | 62 | static STATE: StaticCell<cyw43::State> = StaticCell::new(); |
| 63 | let state = STATE.init(cyw43::State::new()); | ||
| 63 | let (net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; | 64 | let (net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; |
| 64 | unwrap!(spawner.spawn(wifi_task(runner))); | 65 | unwrap!(spawner.spawn(wifi_task(runner))); |
| 65 | 66 | ||
| @@ -79,11 +80,13 @@ async fn main(spawner: Spawner) { | |||
| 79 | let seed = 0x0123_4567_89ab_cdef; // chosen by fair dice roll. guarenteed to be random. | 80 | let seed = 0x0123_4567_89ab_cdef; // chosen by fair dice roll. guarenteed to be random. |
| 80 | 81 | ||
| 81 | // Init network stack | 82 | // Init network stack |
| 82 | let stack = &*make_static!(Stack::new( | 83 | static STACK: StaticCell<Stack<cyw43::NetDriver<'static>>> = StaticCell::new(); |
| 84 | static RESOURCES: StaticCell<StackResources<2>> = StaticCell::new(); | ||
| 85 | let stack = &*STACK.init(Stack::new( | ||
| 83 | net_device, | 86 | net_device, |
| 84 | config, | 87 | config, |
| 85 | make_static!(StackResources::<2>::new()), | 88 | RESOURCES.init(StackResources::<2>::new()), |
| 86 | seed | 89 | seed, |
| 87 | )); | 90 | )); |
| 88 | 91 | ||
| 89 | unwrap!(spawner.spawn(net_task(stack))); | 92 | unwrap!(spawner.spawn(net_task(stack))); |
diff --git a/examples/rp/src/bin/wifi_blinky.rs b/examples/rp/src/bin/wifi_blinky.rs index 14ace74e9..b89447b7d 100644 --- a/examples/rp/src/bin/wifi_blinky.rs +++ b/examples/rp/src/bin/wifi_blinky.rs | |||
| @@ -14,7 +14,7 @@ use embassy_rp::gpio::{Level, Output}; | |||
| 14 | use embassy_rp::peripherals::{DMA_CH0, PIN_23, PIN_25, PIO0}; | 14 | use embassy_rp::peripherals::{DMA_CH0, PIN_23, PIN_25, PIO0}; |
| 15 | use embassy_rp::pio::{InterruptHandler, Pio}; | 15 | use embassy_rp::pio::{InterruptHandler, Pio}; |
| 16 | use embassy_time::{Duration, Timer}; | 16 | use embassy_time::{Duration, Timer}; |
| 17 | use static_cell::make_static; | 17 | use static_cell::StaticCell; |
| 18 | use {defmt_rtt as _, panic_probe as _}; | 18 | use {defmt_rtt as _, panic_probe as _}; |
| 19 | 19 | ||
| 20 | bind_interrupts!(struct Irqs { | 20 | bind_interrupts!(struct Irqs { |
| @@ -46,7 +46,8 @@ async fn main(spawner: Spawner) { | |||
| 46 | let mut pio = Pio::new(p.PIO0, Irqs); | 46 | let mut pio = Pio::new(p.PIO0, Irqs); |
| 47 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); | 47 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); |
| 48 | 48 | ||
| 49 | let state = make_static!(cyw43::State::new()); | 49 | static STATE: StaticCell<cyw43::State> = StaticCell::new(); |
| 50 | let state = STATE.init(cyw43::State::new()); | ||
| 50 | let (_net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; | 51 | let (_net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; |
| 51 | unwrap!(spawner.spawn(wifi_task(runner))); | 52 | unwrap!(spawner.spawn(wifi_task(runner))); |
| 52 | 53 | ||
diff --git a/examples/rp/src/bin/wifi_scan.rs b/examples/rp/src/bin/wifi_scan.rs index 7adf52b88..0f7ad27dd 100644 --- a/examples/rp/src/bin/wifi_scan.rs +++ b/examples/rp/src/bin/wifi_scan.rs | |||
| @@ -16,7 +16,7 @@ use embassy_rp::bind_interrupts; | |||
| 16 | use embassy_rp::gpio::{Level, Output}; | 16 | use embassy_rp::gpio::{Level, Output}; |
| 17 | use embassy_rp::peripherals::{DMA_CH0, PIN_23, PIN_25, PIO0}; | 17 | use embassy_rp::peripherals::{DMA_CH0, PIN_23, PIN_25, PIO0}; |
| 18 | use embassy_rp::pio::{InterruptHandler, Pio}; | 18 | use embassy_rp::pio::{InterruptHandler, Pio}; |
| 19 | use static_cell::make_static; | 19 | use static_cell::StaticCell; |
| 20 | use {defmt_rtt as _, panic_probe as _}; | 20 | use {defmt_rtt as _, panic_probe as _}; |
| 21 | 21 | ||
| 22 | bind_interrupts!(struct Irqs { | 22 | bind_interrupts!(struct Irqs { |
| @@ -56,7 +56,8 @@ async fn main(spawner: Spawner) { | |||
| 56 | let mut pio = Pio::new(p.PIO0, Irqs); | 56 | let mut pio = Pio::new(p.PIO0, Irqs); |
| 57 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); | 57 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); |
| 58 | 58 | ||
| 59 | let state = make_static!(cyw43::State::new()); | 59 | static STATE: StaticCell<cyw43::State> = StaticCell::new(); |
| 60 | let state = STATE.init(cyw43::State::new()); | ||
| 60 | let (_net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; | 61 | let (_net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; |
| 61 | unwrap!(spawner.spawn(wifi_task(runner))); | 62 | unwrap!(spawner.spawn(wifi_task(runner))); |
| 62 | 63 | ||
diff --git a/examples/rp/src/bin/wifi_tcp_server.rs b/examples/rp/src/bin/wifi_tcp_server.rs index ec6b4ee74..f6cc48d8f 100644 --- a/examples/rp/src/bin/wifi_tcp_server.rs +++ b/examples/rp/src/bin/wifi_tcp_server.rs | |||
| @@ -19,7 +19,7 @@ use embassy_rp::peripherals::{DMA_CH0, PIN_23, PIN_25, PIO0}; | |||
| 19 | use embassy_rp::pio::{InterruptHandler, Pio}; | 19 | use embassy_rp::pio::{InterruptHandler, Pio}; |
| 20 | use embassy_time::{Duration, Timer}; | 20 | use embassy_time::{Duration, Timer}; |
| 21 | use embedded_io_async::Write; | 21 | use embedded_io_async::Write; |
| 22 | use static_cell::make_static; | 22 | use static_cell::StaticCell; |
| 23 | use {defmt_rtt as _, panic_probe as _}; | 23 | use {defmt_rtt as _, panic_probe as _}; |
| 24 | 24 | ||
| 25 | bind_interrupts!(struct Irqs { | 25 | bind_interrupts!(struct Irqs { |
| @@ -62,7 +62,8 @@ async fn main(spawner: Spawner) { | |||
| 62 | let mut pio = Pio::new(p.PIO0, Irqs); | 62 | let mut pio = Pio::new(p.PIO0, Irqs); |
| 63 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); | 63 | let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); |
| 64 | 64 | ||
| 65 | let state = make_static!(cyw43::State::new()); | 65 | static STATE: StaticCell<cyw43::State> = StaticCell::new(); |
| 66 | let state = STATE.init(cyw43::State::new()); | ||
| 66 | let (net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; | 67 | let (net_device, mut control, runner) = cyw43::new(state, pwr, spi, fw).await; |
| 67 | unwrap!(spawner.spawn(wifi_task(runner))); | 68 | unwrap!(spawner.spawn(wifi_task(runner))); |
| 68 | 69 | ||
| @@ -82,11 +83,13 @@ async fn main(spawner: Spawner) { | |||
| 82 | let seed = 0x0123_4567_89ab_cdef; // chosen by fair dice roll. guarenteed to be random. | 83 | let seed = 0x0123_4567_89ab_cdef; // chosen by fair dice roll. guarenteed to be random. |
| 83 | 84 | ||
| 84 | // Init network stack | 85 | // Init network stack |
| 85 | let stack = &*make_static!(Stack::new( | 86 | static STACK: StaticCell<Stack<cyw43::NetDriver<'static>>> = StaticCell::new(); |
| 87 | static RESOURCES: StaticCell<StackResources<2>> = StaticCell::new(); | ||
| 88 | let stack = &*STACK.init(Stack::new( | ||
| 86 | net_device, | 89 | net_device, |
| 87 | config, | 90 | config, |
| 88 | make_static!(StackResources::<2>::new()), | 91 | RESOURCES.init(StackResources::<2>::new()), |
| 89 | seed | 92 | seed, |
| 90 | )); | 93 | )); |
| 91 | 94 | ||
| 92 | unwrap!(spawner.spawn(net_task(stack))); | 95 | unwrap!(spawner.spawn(net_task(stack))); |
