Merge branch 'main' of github.com:embassy-rs/embassy into low-power
This commit is contained in:
		@@ -15,7 +15,7 @@ embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-
 | 
			
		||||
embedded-hal = { version = "1.0.0-rc.1" }
 | 
			
		||||
embedded-hal-async = { version = "=1.0.0-rc.1" }
 | 
			
		||||
 | 
			
		||||
noproto = { git="https://github.com/embassy-rs/noproto", default-features = false, features = ["derive"] }
 | 
			
		||||
noproto = { git="https://github.com/embassy-rs/noproto", rev = "c90f3a78d7b5642415e0a07af401320b84d8ab6f", default-features = false, features = ["derive"] }
 | 
			
		||||
#noproto = { version = "0.1", path = "/home/dirbaio/noproto", default-features = false, features = ["derive"] }
 | 
			
		||||
heapless = "0.7.16"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 | 
			
		||||
It builds on [`smoltcp`](https://github.com/smoltcp-rs/smoltcp). It provides a higher-level and more opinionated
 | 
			
		||||
API. It glues together the components provided by `smoltcp`, handling the low-level details with defaults and
 | 
			
		||||
memory management designed to work well for embedded systems, aiiming for a more "Just Works" experience.
 | 
			
		||||
memory management designed to work well for embedded systems, aiming for a more "Just Works" experience.
 | 
			
		||||
 | 
			
		||||
## Features
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,9 +8,6 @@ src_base = "https://github.com/embassy-rs/embassy/blob/embassy-usb-logger-v$VERS
 | 
			
		||||
src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-usb-logger/src/"
 | 
			
		||||
target = "thumbv7em-none-eabi"
 | 
			
		||||
 | 
			
		||||
[features]
 | 
			
		||||
msos-descriptor = ["embassy-usb/msos-descriptor"]
 | 
			
		||||
 | 
			
		||||
[dependencies]
 | 
			
		||||
embassy-usb = { version = "0.1.0", path = "../embassy-usb" }
 | 
			
		||||
embassy-sync = { version = "0.4.0", path = "../embassy-sync" }
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,6 @@ pub struct LoggerState<'d> {
 | 
			
		||||
    device_descriptor: [u8; 32],
 | 
			
		||||
    config_descriptor: [u8; 128],
 | 
			
		||||
    bos_descriptor: [u8; 16],
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    msos_descriptor: [u8; 256],
 | 
			
		||||
    control_buf: [u8; 64],
 | 
			
		||||
}
 | 
			
		||||
@@ -32,7 +31,6 @@ impl<'d> LoggerState<'d> {
 | 
			
		||||
            device_descriptor: [0; 32],
 | 
			
		||||
            config_descriptor: [0; 128],
 | 
			
		||||
            bos_descriptor: [0; 16],
 | 
			
		||||
            #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
            msos_descriptor: [0; 256],
 | 
			
		||||
            control_buf: [0; 64],
 | 
			
		||||
        }
 | 
			
		||||
@@ -77,7 +75,6 @@ impl<const N: usize> UsbLogger<N> {
 | 
			
		||||
            &mut state.device_descriptor,
 | 
			
		||||
            &mut state.config_descriptor,
 | 
			
		||||
            &mut state.bos_descriptor,
 | 
			
		||||
            #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
            &mut state.msos_descriptor,
 | 
			
		||||
            &mut state.control_buf,
 | 
			
		||||
        );
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,6 @@ target = "thumbv7em-none-eabi"
 | 
			
		||||
[features]
 | 
			
		||||
defmt = ["dep:defmt", "embassy-usb-driver/defmt"]
 | 
			
		||||
usbd-hid = ["dep:usbd-hid", "dep:ssmarshal"]
 | 
			
		||||
msos-descriptor = []
 | 
			
		||||
default = ["usbd-hid"]
 | 
			
		||||
 | 
			
		||||
# BEGIN AUTOGENERATED CONFIG FEATURES
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@ use heapless::Vec;
 | 
			
		||||
use crate::config::MAX_HANDLER_COUNT;
 | 
			
		||||
use crate::descriptor::{BosWriter, DescriptorWriter};
 | 
			
		||||
use crate::driver::{Driver, Endpoint, EndpointType};
 | 
			
		||||
#[cfg(feature = "msos-descriptor")]
 | 
			
		||||
use crate::msos::{DeviceLevelDescriptor, FunctionLevelDescriptor, MsOsDescriptorWriter};
 | 
			
		||||
use crate::types::{InterfaceNumber, StringIndex};
 | 
			
		||||
use crate::{Handler, Interface, UsbDevice, MAX_INTERFACE_COUNT, STRING_INDEX_CUSTOM_START};
 | 
			
		||||
@@ -133,7 +132,6 @@ pub struct Builder<'d, D: Driver<'d>> {
 | 
			
		||||
    config_descriptor: DescriptorWriter<'d>,
 | 
			
		||||
    bos_descriptor: BosWriter<'d>,
 | 
			
		||||
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    msos_descriptor: MsOsDescriptorWriter<'d>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -149,7 +147,7 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
 | 
			
		||||
        device_descriptor_buf: &'d mut [u8],
 | 
			
		||||
        config_descriptor_buf: &'d mut [u8],
 | 
			
		||||
        bos_descriptor_buf: &'d mut [u8],
 | 
			
		||||
        #[cfg(feature = "msos-descriptor")] msos_descriptor_buf: &'d mut [u8],
 | 
			
		||||
        msos_descriptor_buf: &'d mut [u8],
 | 
			
		||||
        control_buf: &'d mut [u8],
 | 
			
		||||
    ) -> Self {
 | 
			
		||||
        // Magic values specified in USB-IF ECN on IADs.
 | 
			
		||||
@@ -189,14 +187,12 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
 | 
			
		||||
            config_descriptor,
 | 
			
		||||
            bos_descriptor,
 | 
			
		||||
 | 
			
		||||
            #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
            msos_descriptor: MsOsDescriptorWriter::new(msos_descriptor_buf),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Creates the [`UsbDevice`] instance with the configuration in this builder.
 | 
			
		||||
    pub fn build(mut self) -> UsbDevice<'d, D> {
 | 
			
		||||
        #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
        let msos_descriptor = self.msos_descriptor.build(&mut self.bos_descriptor);
 | 
			
		||||
 | 
			
		||||
        self.config_descriptor.end_configuration();
 | 
			
		||||
@@ -206,7 +202,6 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
 | 
			
		||||
        info!("USB: device_descriptor used: {}", self.device_descriptor.position());
 | 
			
		||||
        info!("USB: config_descriptor used: {}", self.config_descriptor.position());
 | 
			
		||||
        info!("USB: bos_descriptor used: {}", self.bos_descriptor.writer.position());
 | 
			
		||||
        #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
        info!("USB: msos_descriptor used: {}", msos_descriptor.len());
 | 
			
		||||
        info!("USB: control_buf size: {}", self.control_buf.len());
 | 
			
		||||
 | 
			
		||||
@@ -217,10 +212,9 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
 | 
			
		||||
            self.device_descriptor.into_buf(),
 | 
			
		||||
            self.config_descriptor.into_buf(),
 | 
			
		||||
            self.bos_descriptor.writer.into_buf(),
 | 
			
		||||
            msos_descriptor,
 | 
			
		||||
            self.interfaces,
 | 
			
		||||
            self.control_buf,
 | 
			
		||||
            #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
            msos_descriptor,
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -251,7 +245,6 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
 | 
			
		||||
            builder: self,
 | 
			
		||||
            iface_count_index,
 | 
			
		||||
 | 
			
		||||
            #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
            first_interface,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -275,7 +268,6 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
 | 
			
		||||
        StringIndex::new(index)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    /// Add an MS OS 2.0 Descriptor Set.
 | 
			
		||||
    ///
 | 
			
		||||
    /// Panics if called more than once.
 | 
			
		||||
@@ -283,13 +275,11 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
 | 
			
		||||
        self.msos_descriptor.header(windows_version, vendor_code);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    /// Add an MS OS 2.0 Device Level Feature Descriptor.
 | 
			
		||||
    pub fn msos_feature<T: DeviceLevelDescriptor>(&mut self, desc: T) {
 | 
			
		||||
        self.msos_descriptor.device_feature(desc);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    /// Gets the underlying [`MsOsDescriptorWriter`] to allow adding subsets and features for classes that
 | 
			
		||||
    /// do not add their own.
 | 
			
		||||
    pub fn msos_writer(&mut self) -> &mut MsOsDescriptorWriter<'d> {
 | 
			
		||||
@@ -306,13 +296,11 @@ pub struct FunctionBuilder<'a, 'd, D: Driver<'d>> {
 | 
			
		||||
    builder: &'a mut Builder<'d, D>,
 | 
			
		||||
    iface_count_index: Option<usize>,
 | 
			
		||||
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    first_interface: InterfaceNumber,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<'a, 'd, D: Driver<'d>> Drop for FunctionBuilder<'a, 'd, D> {
 | 
			
		||||
    fn drop(&mut self) {
 | 
			
		||||
        #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
        self.builder.msos_descriptor.end_function();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -344,7 +332,6 @@ impl<'a, 'd, D: Driver<'d>> FunctionBuilder<'a, 'd, D> {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    /// Add an MS OS 2.0 Function Level Feature Descriptor.
 | 
			
		||||
    pub fn msos_feature<T: FunctionLevelDescriptor>(&mut self, desc: T) {
 | 
			
		||||
        if !self.builder.msos_descriptor.is_in_config_subset() {
 | 
			
		||||
@@ -355,7 +342,6 @@ impl<'a, 'd, D: Driver<'d>> FunctionBuilder<'a, 'd, D> {
 | 
			
		||||
            self.builder.msos_descriptor.function(self.first_interface);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
        self.builder.msos_descriptor.function_feature(desc);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -175,10 +175,7 @@ pub struct UsbBufferReport {
 | 
			
		||||
    /// Number of bos descriptor bytes used
 | 
			
		||||
    pub bos_descriptor_used: usize,
 | 
			
		||||
    /// Number of msos descriptor bytes used
 | 
			
		||||
    ///
 | 
			
		||||
    /// Will be `None` if the "msos-descriptor" feature is not active.
 | 
			
		||||
    /// Otherwise will return Some(bytes).
 | 
			
		||||
    pub msos_descriptor_used: Option<usize>,
 | 
			
		||||
    pub msos_descriptor_used: usize,
 | 
			
		||||
    /// Size of the control buffer
 | 
			
		||||
    pub control_buffer_size: usize,
 | 
			
		||||
}
 | 
			
		||||
@@ -197,6 +194,7 @@ struct Inner<'d, D: Driver<'d>> {
 | 
			
		||||
    device_descriptor: &'d [u8],
 | 
			
		||||
    config_descriptor: &'d [u8],
 | 
			
		||||
    bos_descriptor: &'d [u8],
 | 
			
		||||
    msos_descriptor: crate::msos::MsOsDescriptorSet<'d>,
 | 
			
		||||
 | 
			
		||||
    device_state: UsbDeviceState,
 | 
			
		||||
    suspended: bool,
 | 
			
		||||
@@ -212,9 +210,6 @@ struct Inner<'d, D: Driver<'d>> {
 | 
			
		||||
 | 
			
		||||
    interfaces: Vec<Interface, MAX_INTERFACE_COUNT>,
 | 
			
		||||
    handlers: Vec<&'d mut dyn Handler, MAX_HANDLER_COUNT>,
 | 
			
		||||
 | 
			
		||||
    #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
    msos_descriptor: crate::msos::MsOsDescriptorSet<'d>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<'d, D: Driver<'d>> UsbDevice<'d, D> {
 | 
			
		||||
@@ -225,9 +220,9 @@ impl<'d, D: Driver<'d>> UsbDevice<'d, D> {
 | 
			
		||||
        device_descriptor: &'d [u8],
 | 
			
		||||
        config_descriptor: &'d [u8],
 | 
			
		||||
        bos_descriptor: &'d [u8],
 | 
			
		||||
        msos_descriptor: crate::msos::MsOsDescriptorSet<'d>,
 | 
			
		||||
        interfaces: Vec<Interface, MAX_INTERFACE_COUNT>,
 | 
			
		||||
        control_buf: &'d mut [u8],
 | 
			
		||||
        #[cfg(feature = "msos-descriptor")] msos_descriptor: crate::msos::MsOsDescriptorSet<'d>,
 | 
			
		||||
    ) -> UsbDevice<'d, D> {
 | 
			
		||||
        // Start the USB bus.
 | 
			
		||||
        // This prevent further allocation by consuming the driver.
 | 
			
		||||
@@ -242,6 +237,7 @@ impl<'d, D: Driver<'d>> UsbDevice<'d, D> {
 | 
			
		||||
                device_descriptor,
 | 
			
		||||
                config_descriptor,
 | 
			
		||||
                bos_descriptor,
 | 
			
		||||
                msos_descriptor,
 | 
			
		||||
 | 
			
		||||
                device_state: UsbDeviceState::Unpowered,
 | 
			
		||||
                suspended: false,
 | 
			
		||||
@@ -251,8 +247,6 @@ impl<'d, D: Driver<'d>> UsbDevice<'d, D> {
 | 
			
		||||
                set_address_pending: false,
 | 
			
		||||
                interfaces,
 | 
			
		||||
                handlers,
 | 
			
		||||
                #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
                msos_descriptor,
 | 
			
		||||
            },
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -261,16 +255,11 @@ impl<'d, D: Driver<'d>> UsbDevice<'d, D> {
 | 
			
		||||
    ///
 | 
			
		||||
    /// Useful for tuning buffer sizes for actual usage
 | 
			
		||||
    pub fn buffer_usage(&self) -> UsbBufferReport {
 | 
			
		||||
        #[cfg(not(feature = "msos-descriptor"))]
 | 
			
		||||
        let mdu = None;
 | 
			
		||||
        #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
        let mdu = Some(self.inner.msos_descriptor.len());
 | 
			
		||||
 | 
			
		||||
        UsbBufferReport {
 | 
			
		||||
            device_descriptor_used: self.inner.device_descriptor.len(),
 | 
			
		||||
            config_descriptor_used: self.inner.config_descriptor.len(),
 | 
			
		||||
            bos_descriptor_used: self.inner.bos_descriptor.len(),
 | 
			
		||||
            msos_descriptor_used: mdu,
 | 
			
		||||
            msos_descriptor_used: self.inner.msos_descriptor.len(),
 | 
			
		||||
            control_buffer_size: self.control_buf.len(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -684,7 +673,7 @@ impl<'d, D: Driver<'d>> Inner<'d, D> {
 | 
			
		||||
                }
 | 
			
		||||
                _ => InResponse::Rejected,
 | 
			
		||||
            },
 | 
			
		||||
            #[cfg(feature = "msos-descriptor")]
 | 
			
		||||
 | 
			
		||||
            (RequestType::Vendor, Recipient::Device) => {
 | 
			
		||||
                if !self.msos_descriptor.is_empty()
 | 
			
		||||
                    && req.request == self.msos_descriptor.vendor_code()
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
#![cfg(feature = "msos-descriptor")]
 | 
			
		||||
 | 
			
		||||
//! Microsoft OS Descriptors
 | 
			
		||||
//!
 | 
			
		||||
//! <https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-os-2-0-descriptors-specification>
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ embassy-executor = { version = "0.3.1", path = "../../embassy-executor", feature
 | 
			
		||||
embassy-time = { version = "0.1.5", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] }
 | 
			
		||||
embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] }
 | 
			
		||||
embassy-net = { version = "0.2.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"], optional = true }
 | 
			
		||||
embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt", "msos-descriptor",], optional = true }
 | 
			
		||||
embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"], optional = true }
 | 
			
		||||
embedded-io = { version = "0.6.0", features = ["defmt-03"]  }
 | 
			
		||||
embedded-io-async = { version = "0.6.0", optional = true, features = ["defmt-03"] }
 | 
			
		||||
embassy-lora = { version = "0.1.0", path = "../../embassy-lora", features = ["time", "defmt"], optional = true }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,11 +11,11 @@ embassy-sync = { version = "0.4.0", path = "../../embassy-sync", features = ["de
 | 
			
		||||
embassy-executor = { version = "0.3.1", path = "../../embassy-executor", features = ["nightly", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
 | 
			
		||||
embassy-time = { version = "0.1.5", path = "../../embassy-time", features = ["nightly", "unstable-traits", "defmt", "defmt-timestamp-uptime"] }
 | 
			
		||||
embassy-rp = { version = "0.1.0", path = "../../embassy-rp", features = ["defmt", "unstable-traits", "nightly", "unstable-pac", "time-driver", "critical-section-impl"] }
 | 
			
		||||
embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt", "msos-descriptor"] }
 | 
			
		||||
embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
 | 
			
		||||
embassy-net = { version = "0.2.0", path = "../../embassy-net", features = ["defmt", "nightly", "tcp", "udp", "dhcpv4", "medium-ethernet"] }
 | 
			
		||||
embassy-net-wiznet = { version = "0.1.0", path = "../../embassy-net-wiznet", features = ["defmt"] }
 | 
			
		||||
embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
 | 
			
		||||
embassy-usb-logger = { version = "0.1.0", path = "../../embassy-usb-logger", features = ["msos-descriptor"]}
 | 
			
		||||
embassy-usb-logger = { version = "0.1.0", path = "../../embassy-usb-logger" }
 | 
			
		||||
embassy-lora = { version = "0.1.0", path = "../../embassy-lora", features = ["time", "defmt"] }
 | 
			
		||||
lora-phy = { version = "2" }
 | 
			
		||||
lorawan-device = { version = "0.11.0", default-features = false, features = ["async", "external-lora-phy"] }
 | 
			
		||||
 
 | 
			
		||||
@@ -75,7 +75,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [],
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,7 @@ async fn main(spawner: Spawner) {
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut make_static!([0; 0])[..],
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut make_static!([0; 128])[..],
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [],
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -60,7 +60,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [],
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["
 | 
			
		||||
embassy-sync = { version = "0.4.0", path = "../../embassy-sync", features = ["defmt"] }
 | 
			
		||||
embassy-executor = { version = "0.3.1", path = "../../embassy-executor", features = ["nightly", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
 | 
			
		||||
embassy-time = { version = "0.1.5", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "unstable-traits", "tick-hz-32_768"] }
 | 
			
		||||
embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt", "msos-descriptor"] }
 | 
			
		||||
embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt" ] }
 | 
			
		||||
embassy-net = { version = "0.2.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", "nightly"] }
 | 
			
		||||
 | 
			
		||||
defmt = "0.3"
 | 
			
		||||
 
 | 
			
		||||
@@ -94,7 +94,7 @@ async fn main(spawner: Spawner) {
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut [],
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut make_static!([0; 128])[..],
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -77,7 +77,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [],
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -77,6 +77,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -82,6 +82,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -78,6 +78,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -72,6 +72,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -82,6 +82,7 @@ async fn main(spawner: Spawner) {
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut make_static!([0; 256])[..],
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut make_static!([0; 128])[..],
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -67,6 +67,7 @@ async fn main(_spawner: Spawner) {
 | 
			
		||||
        &mut device_descriptor,
 | 
			
		||||
        &mut config_descriptor,
 | 
			
		||||
        &mut bos_descriptor,
 | 
			
		||||
        &mut [], // no msos descriptors
 | 
			
		||||
        &mut control_buf,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user