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:
Onur Özkan committed 2026-11-07 18:12:11 +03:00
1 parent fb1b8af2d1
commit f9a61a086f
211 files changed
+45657 -12740

No files matched your search

+6 -8
View File
@@ -8,18 +8,12 @@ version.workspace = true
[lints]
workspace = true
[lib]
# This is a bare-metal `no_std` platform library with its own panic handler.
# Host-verifiable invariants live in `tests/platform_safety_boundary.rs`; a
# generated lib-test harness would link `std` and a second panic handler.
test = false
[dependencies]
kaptan-err-reportable = { path = "../../libs/kaptan-err-reportable" }
kaptan-config = { path = "../../libs/kaptan-config" }
kaptan-ports = { path = "../../libs/kaptan-ports" }
kaptan-file-mavlink = { path = "../../libs/kaptan-file-mavlink" }
kaptan-data-channel = { path = "../../libs/kaptan-data-channel" }
kaptan-dma = { path = "../../libs/kaptan-dma" }
kaptan-drivers = { path = "../../libs/kaptan-drivers" }
kaptan-i2c = { path = "../../libs/kaptan-i2c" }
kaptan-log = { path = "../../libs/kaptan-log" }
@@ -29,7 +23,8 @@ kaptan-sensor = { path = "../../libs/kaptan-sensor" }
kaptan-spi = { path = "../../libs/kaptan-spi" }
kaptan-time = { path = "../../libs/kaptan-time" }
kaptan-tx = { path = "../../libs/kaptan-tx" }
cortex-m = "0.7"
cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
critical-section = "1.2"
cortex-m-rt = "0.7"
rtic = { version = "2.3", default-features = false, features = [
"thumbv7-backend",
@@ -42,3 +37,6 @@ synopsys-usb-otg = { version = "0.4", features = ["cortex-m", "fs"] }
usb-device = "0.3"
usbd-serial = "0.2"
panic-halt = "1"
[target.'cfg(not(target_os = "none"))'.dev-dependencies]
critical-section = { version = "1.2", features = ["std"] }