feat(firmware): validate configuration and migrate sensor-driven flight APIs
Validate configuration through its owning schemas and keep board declarations separate from shared F722 resource ownership. Bound USB transitions, isolate transport failures and retain restart-only activation. Migrate navigation and flight consumers with the sensor and schema contracts. Require explicit installation data and synchronous output authority; board motor outputs remain inhibited. Validation: assembled-prefix host tests, strict Clippy, platform/USB tests and both ARM release builds. Final-source coverage and scoped Miri/Kani evidence are retained separately from hardware qualification.
This commit is contained in:
1 parent
fb1b8af2d1
commit
f9a61a086f
211 files changed
+45657
-12740
No files matched your search
@@ -0,0 +1,41 @@
|
||||
use usb_device::endpoint::{EndpointAddress, EndpointType};
|
||||
|
||||
/// USB endpoint descriptor information.
|
||||
pub struct EndpointDescriptor {
|
||||
/// Endpoint address.
|
||||
pub address: EndpointAddress,
|
||||
|
||||
/// Endpoint transfer type.
|
||||
pub ep_type: EndpointType,
|
||||
|
||||
/// Maximum packet size.
|
||||
pub max_packet_size: u16,
|
||||
|
||||
/// Poll interval for interrupt endpoints.
|
||||
pub interval: u8,
|
||||
}
|
||||
|
||||
/// Configuration for an endpoint allocation.
|
||||
pub struct EndpointConfig {
|
||||
/// The transfer type of the endpoint to be allocated.
|
||||
pub ep_type: EndpointType,
|
||||
|
||||
/// Maximum packet size for the endpoint to be allocated.
|
||||
pub max_packet_size: u16,
|
||||
|
||||
/// Poll interval for interrupt endpoints.
|
||||
pub interval: u8,
|
||||
|
||||
/// Requests a specific endpoint number. Allocation shall fail if the number is not available.
|
||||
pub number: Option<u8>,
|
||||
|
||||
/// Specifies that the endpoint is the "pair" of another endpoint.
|
||||
///
|
||||
/// If `ep` is an endpoint in the opposite direction, this means that the endpoint to be
|
||||
/// allocated uses the same transfer type as `ep` but in the opposite direction in all alternate
|
||||
/// settings for the interface.
|
||||
///
|
||||
/// If `ep` is an endpoint in the same direction, this means that the two endpoints belong to
|
||||
/// different alternate settings for the interface and may never be enabled at the same time.
|
||||
pub pair_of: Option<EndpointAddress>,
|
||||
}
|
||||
Reference in new issue
Block a user