diff --git a/embassy-rp/src/clocks.rs b/embassy-rp/src/clocks.rs index 364cf452..6835ecad 100644 --- a/embassy-rp/src/clocks.rs +++ b/embassy-rp/src/clocks.rs @@ -115,7 +115,7 @@ pub unsafe fn init() { reset::unreset_wait(peris); } -pub(crate) fn clk_sys_freq() -> u32 { +pub(crate) fn _clk_sys_freq() -> u32 { 125_000_000 } @@ -123,7 +123,7 @@ pub(crate) fn clk_peri_freq() -> u32 { 125_000_000 } -pub(crate) fn clk_rtc_freq() -> u32 { +pub(crate) fn _clk_rtc_freq() -> u32 { 46875 } diff --git a/embassy/src/io/traits.rs b/embassy/src/io/traits.rs index 6138adb4..b59cdc0d 100644 --- a/embassy/src/io/traits.rs +++ b/embassy/src/io/traits.rs @@ -31,11 +31,11 @@ pub trait AsyncBufRead { /// This function is a lower-level call. It needs to be paired with the /// [`consume`] method to function properly. When calling this /// method, none of the contents will be "read" in the sense that later - /// calling [`poll_read`] may return the same contents. As such, [`consume`] must + /// calling [`poll_fill_buf`] may return the same contents. As such, [`consume`] must /// be called with the number of bytes that are consumed from this buffer to /// ensure that the bytes are never returned twice. /// - /// [`poll_read`]: AsyncBufRead::poll_read + /// [`poll_fill_buf`]: AsyncBufRead::poll_fill_buf /// [`consume`]: AsyncBufRead::consume /// /// An empty buffer returned indicates that the stream has reached EOF. @@ -49,7 +49,7 @@ pub trait AsyncBufRead { fn poll_fill_buf(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll>; /// Tells this buffer that `amt` bytes have been consumed from the buffer, - /// so they should no longer be returned in calls to [`poll_read`]. + /// so they should no longer be returned in calls to [`poll_fill_buf`]. /// /// This function is a lower-level call. It needs to be paired with the /// [`poll_fill_buf`] method to function properly. This function does @@ -61,7 +61,6 @@ pub trait AsyncBufRead { /// The `amt` must be `<=` the number of bytes in the buffer returned by /// [`poll_fill_buf`]. /// - /// [`poll_read`]: AsyncBufRead::poll_read /// [`poll_fill_buf`]: AsyncBufRead::poll_fill_buf fn consume(self: Pin<&mut Self>, amt: usize); } diff --git a/examples/rp/src/bin/button.rs b/examples/rp/src/bin/button.rs index 12bc0e0d..b0c3347f 100644 --- a/examples/rp/src/bin/button.rs +++ b/examples/rp/src/bin/button.rs @@ -12,7 +12,6 @@ mod example_common; use embassy::executor::Spawner; use embassy_rp::gpio::{Input, Level, Output, Pull}; use embassy_rp::Peripherals; -use embedded_hal::digital::v2::{InputPin, OutputPin}; #[embassy::main] async fn main(_spawner: Spawner, p: Peripherals) { diff --git a/examples/std/src/bin/net.rs b/examples/std/src/bin/net.rs index 344a6e4d..73c8e149 100644 --- a/examples/std/src/bin/net.rs +++ b/examples/std/src/bin/net.rs @@ -18,7 +18,8 @@ mod tuntap; use crate::tuntap::TunTapDevice; static DEVICE: Forever = Forever::new(); -static CONFIG: Forever = Forever::new(); +static CONFIG_STATIC: Forever = Forever::new(); +static CONFIG_DYNAMIC: Forever = Forever::new(); static NET_RESOURCES: Forever> = Forever::new(); #[derive(Clap)] @@ -28,6 +29,9 @@ struct Opts { /// TAP device name #[clap(long, default_value = "tap0")] tap: String, + /// use a static IP instead of DHCP + #[clap(long)] + static_ip: bool, } #[embassy::task] @@ -42,20 +46,21 @@ async fn main_task(spawner: Spawner) { // Init network device let device = TunTapDevice::new(&opts.tap).unwrap(); - // Static IP configuration - let config = StaticConfigurator::new(Config { - address: Ipv4Cidr::new(Ipv4Address::new(192, 168, 69, 2), 24), - dns_servers: Vec::new(), - gateway: Some(Ipv4Address::new(192, 168, 69, 1)), - }); - - // DHCP configruation - let config = DhcpConfigurator::new(); + // Choose between dhcp or static ip + let config: &'static mut dyn Configurator = if opts.static_ip { + CONFIG_STATIC.put(StaticConfigurator::new(Config { + address: Ipv4Cidr::new(Ipv4Address::new(192, 168, 69, 2), 24), + dns_servers: Vec::new(), + gateway: Some(Ipv4Address::new(192, 168, 69, 1)), + })) + } else { + CONFIG_DYNAMIC.put(DhcpConfigurator::new()) + }; let net_resources = StackResources::new(); // Init network stack - embassy_net::init(DEVICE.put(device), CONFIG.put(config), NET_RESOURCES.put(net_resources)); + embassy_net::init(DEVICE.put(device), config, NET_RESOURCES.put(net_resources)); // Launch network task spawner.spawn(net_task()).unwrap(); diff --git a/examples/std/src/tuntap.rs b/examples/std/src/tuntap.rs index dd453deb..53d3afd5 100644 --- a/examples/std/src/tuntap.rs +++ b/examples/std/src/tuntap.rs @@ -7,10 +7,10 @@ use std::io::{Read, Write}; use std::os::unix::io::{AsRawFd, RawFd}; pub const SIOCGIFMTU: libc::c_ulong = 0x8921; -pub const SIOCGIFINDEX: libc::c_ulong = 0x8933; -pub const ETH_P_ALL: libc::c_short = 0x0003; +pub const _SIOCGIFINDEX: libc::c_ulong = 0x8933; +pub const _ETH_P_ALL: libc::c_short = 0x0003; pub const TUNSETIFF: libc::c_ulong = 0x400454CA; -pub const IFF_TUN: libc::c_int = 0x0001; +pub const _IFF_TUN: libc::c_int = 0x0001; pub const IFF_TAP: libc::c_int = 0x0002; pub const IFF_NO_PI: libc::c_int = 0x1000;