aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-12-09 03:18:45 +0100
committerDario Nieuwenhuis <[email protected]>2022-12-13 16:43:25 +0100
commit8f3065210927b6e92f6d727741189155b2eab91e (patch)
tree57bbff95079fd43cb01f0728f8a8b5836e0b5343 /examples
parente9219405ca04e23b6543fb841fd97df54cf72f94 (diff)
stm32/eth_v1: update to new embassy-net trait, remove PeripheralMutex.
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32f7/src/bin/eth.rs50
1 files changed, 25 insertions, 25 deletions
diff --git a/examples/stm32f7/src/bin/eth.rs b/examples/stm32f7/src/bin/eth.rs
index 5202edf62..224cc202b 100644
--- a/examples/stm32f7/src/bin/eth.rs
+++ b/examples/stm32f7/src/bin/eth.rs
@@ -7,7 +7,7 @@ use embassy_executor::Spawner;
7use embassy_net::tcp::TcpSocket; 7use embassy_net::tcp::TcpSocket;
8use embassy_net::{Ipv4Address, Stack, StackResources}; 8use embassy_net::{Ipv4Address, Stack, StackResources};
9use embassy_stm32::eth::generic_smi::GenericSMI; 9use embassy_stm32::eth::generic_smi::GenericSMI;
10use embassy_stm32::eth::{Ethernet, State}; 10use embassy_stm32::eth::{Ethernet, PacketQueue};
11use embassy_stm32::peripherals::ETH; 11use embassy_stm32::peripherals::ETH;
12use embassy_stm32::rng::Rng; 12use embassy_stm32::rng::Rng;
13use embassy_stm32::time::mhz; 13use embassy_stm32::time::mhz;
@@ -22,11 +22,12 @@ macro_rules! singleton {
22 ($val:expr) => {{ 22 ($val:expr) => {{
23 type T = impl Sized; 23 type T = impl Sized;
24 static STATIC_CELL: StaticCell<T> = StaticCell::new(); 24 static STATIC_CELL: StaticCell<T> = StaticCell::new();
25 STATIC_CELL.init_with(move || $val) 25 let (x,) = STATIC_CELL.init(($val,));
26 x
26 }}; 27 }};
27} 28}
28 29
29type Device = Ethernet<'static, ETH, GenericSMI, 4, 4>; 30type Device = Ethernet<'static, ETH, GenericSMI>;
30 31
31#[embassy_executor::task] 32#[embassy_executor::task]
32async fn net_task(stack: &'static Stack<Device>) -> ! { 33async fn net_task(stack: &'static Stack<Device>) -> ! {
@@ -50,25 +51,23 @@ async fn main(spawner: Spawner) -> ! {
50 let eth_int = interrupt::take!(ETH); 51 let eth_int = interrupt::take!(ETH);
51 let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF]; 52 let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
52 53
53 let device = unsafe { 54 let device = Ethernet::new(
54 Ethernet::new( 55 singleton!(PacketQueue::<16, 16>::new()),
55 singleton!(State::new()), 56 p.ETH,
56 p.ETH, 57 eth_int,
57 eth_int, 58 p.PA1,
58 p.PA1, 59 p.PA2,
59 p.PA2, 60 p.PC1,
60 p.PC1, 61 p.PA7,
61 p.PA7, 62 p.PC4,
62 p.PC4, 63 p.PC5,
63 p.PC5, 64 p.PG13,
64 p.PG13, 65 p.PB13,
65 p.PB13, 66 p.PG11,
66 p.PG11, 67 GenericSMI,
67 GenericSMI, 68 mac_addr,
68 mac_addr, 69 0,
69 0, 70 );
70 )
71 };
72 71
73 let config = embassy_net::ConfigStrategy::Dhcp; 72 let config = embassy_net::ConfigStrategy::Dhcp;
74 //let config = embassy_net::ConfigStrategy::Static(embassy_net::Config { 73 //let config = embassy_net::ConfigStrategy::Static(embassy_net::Config {
@@ -91,8 +90,8 @@ async fn main(spawner: Spawner) -> ! {
91 info!("Network task initialized"); 90 info!("Network task initialized");
92 91
93 // Then we can use it! 92 // Then we can use it!
94 let mut rx_buffer = [0; 1024]; 93 let mut rx_buffer = [0; 4096];
95 let mut tx_buffer = [0; 1024]; 94 let mut tx_buffer = [0; 4096];
96 95
97 loop { 96 loop {
98 let mut socket = TcpSocket::new(&stack, &mut rx_buffer, &mut tx_buffer); 97 let mut socket = TcpSocket::new(&stack, &mut rx_buffer, &mut tx_buffer);
@@ -107,8 +106,9 @@ async fn main(spawner: Spawner) -> ! {
107 continue; 106 continue;
108 } 107 }
109 info!("connected!"); 108 info!("connected!");
109 let buf = [0; 1024];
110 loop { 110 loop {
111 let r = socket.write_all(b"Hello\n").await; 111 let r = socket.write_all(&buf).await;
112 if let Err(e) = r { 112 if let Err(e) = r {
113 info!("write error: {:?}", e); 113 info!("write error: {:?}", e);
114 return; 114 return;