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.
33 lines
1.1 KiB
Rust
33 lines
1.1 KiB
Rust
#![cfg_attr(target_os = "none", no_std)]
|
|
#![cfg_attr(target_os = "none", no_main)]
|
|
#[cfg(target_os = "none")]
|
|
mod support;
|
|
#[cfg(target_os = "none")]
|
|
mod target {
|
|
use platform_stm32f7::kaptan_ports::PortCatalog;
|
|
use platform_stm32f7::*;
|
|
pub struct Board;
|
|
impl F7Board for Board {
|
|
type UserConfig = super::support::UserConfig;
|
|
type ImmutableConfig = F722ImmutableConfig<Icm42688Spi3>;
|
|
const FACTORY_USER_CONFIG: Self::UserConfig = super::support::FACTORY;
|
|
const IMMUTABLE_CONFIG: Self::ImmutableConfig = F722ImmutableConfig {
|
|
name: "synthetic ICM dual UART",
|
|
service_hz: 100,
|
|
hardware: F722Hardware::new(
|
|
Icm42688Spi3 {
|
|
mount: ImuMount::Yaw180,
|
|
},
|
|
SerialInventory::new(&super::support::Both::DESCRIPTORS),
|
|
StatusLed::ActiveLowPd2,
|
|
VerticalSensor::None,
|
|
MotorPins::Four,
|
|
),
|
|
};
|
|
}
|
|
}
|
|
#[cfg(target_os = "none")]
|
|
platform_stm32f7::flight_firmware!(crate::target::Board);
|
|
#[cfg(not(target_os = "none"))]
|
|
fn main() {}
|