aboutsummaryrefslogtreecommitdiff
path: root/examples/rp/src/bin/usb_ethernet.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-09-11 22:06:26 +0200
committerDario Nieuwenhuis <[email protected]>2024-09-16 21:17:11 +0200
commitbe0d9775e3bcc3c1bd1448e357d7c6cd67b68991 (patch)
tree5e8c444b233a86ade113b096ab1e2934b7bbc7bd /examples/rp/src/bin/usb_ethernet.rs
parent7648d42b7f23a2caad29ed6e16123b088ccdc8b5 (diff)
net: refactor to simplify lifetimes/generics.
Diffstat (limited to 'examples/rp/src/bin/usb_ethernet.rs')
-rw-r--r--examples/rp/src/bin/usb_ethernet.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/examples/rp/src/bin/usb_ethernet.rs b/examples/rp/src/bin/usb_ethernet.rs
index 03c510f37..9a15125d4 100644
--- a/examples/rp/src/bin/usb_ethernet.rs
+++ b/examples/rp/src/bin/usb_ethernet.rs
@@ -8,7 +8,7 @@
8use defmt::*; 8use defmt::*;
9use embassy_executor::Spawner; 9use embassy_executor::Spawner;
10use embassy_net::tcp::TcpSocket; 10use embassy_net::tcp::TcpSocket;
11use embassy_net::{Stack, StackResources}; 11use embassy_net::StackResources;
12use embassy_rp::clocks::RoscRng; 12use embassy_rp::clocks::RoscRng;
13use embassy_rp::peripherals::USB; 13use embassy_rp::peripherals::USB;
14use embassy_rp::usb::{Driver, InterruptHandler}; 14use embassy_rp::usb::{Driver, InterruptHandler};
@@ -40,8 +40,8 @@ async fn usb_ncm_task(class: Runner<'static, MyDriver, MTU>) -> ! {
40} 40}
41 41
42#[embassy_executor::task] 42#[embassy_executor::task]
43async fn net_task(stack: &'static Stack<Device<'static, MTU>>) -> ! { 43async fn net_task(mut runner: embassy_net::Runner<'static, Device<'static, MTU>>) -> ! {
44 stack.run().await 44 runner.run().await
45} 45}
46 46
47#[embassy_executor::main] 47#[embassy_executor::main]
@@ -108,11 +108,10 @@ async fn main(spawner: Spawner) {
108 let seed = rng.next_u64(); 108 let seed = rng.next_u64();
109 109
110 // Init network stack 110 // Init network stack
111 static STACK: StaticCell<Stack<Device<'static, MTU>>> = StaticCell::new();
112 static RESOURCES: StaticCell<StackResources<3>> = StaticCell::new(); 111 static RESOURCES: StaticCell<StackResources<3>> = StaticCell::new();
113 let stack = &*STACK.init(Stack::new(device, config, RESOURCES.init(StackResources::new()), seed)); 112 let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed);
114 113
115 unwrap!(spawner.spawn(net_task(stack))); 114 unwrap!(spawner.spawn(net_task(runner)));
116 115
117 // And now we can use it! 116 // And now we can use it!
118 117