diff options
Diffstat (limited to 'crates/imxrt1170evk/src/main.rs')
| -rw-r--r-- | crates/imxrt1170evk/src/main.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/crates/imxrt1170evk/src/main.rs b/crates/imxrt1170evk/src/main.rs index 737a6cc..c2db594 100644 --- a/crates/imxrt1170evk/src/main.rs +++ b/crates/imxrt1170evk/src/main.rs @@ -1,6 +1,19 @@ use rust_threadx_imxrt1170evk as _; +use std::{net::UdpSocket, thread}; + fn main() { + thread::scope(|scope| { + thread::Builder::new() + .stack_size(512) + .spawn_scoped(scope, count) + .unwrap(); + + udp_loopback(); + }) +} + +fn count() -> ! { let mut count = 0_usize; loop { println!("Hello world! The count is {count}"); @@ -8,3 +21,18 @@ fn main() { std::thread::sleep(std::time::Duration::from_millis(500)) } } + +fn udp_loopback() -> ! { + let mut buffer = [0_u8; 1024]; + let socket = UdpSocket::bind("192.168.5.1:5678").unwrap(); + loop { + let (amt, src) = socket.recv_from(&mut buffer).unwrap(); + let msg = &buffer[..amt]; + println!( + "Received {amt} bytes from {src}: \"{}\"", + str::from_utf8(msg).unwrap() + ); + + socket.send_to(msg, &src).unwrap(); + } +} |
