docs: centralize Markdown developer manual
This commit is contained in:
1 parent
7e4afb4f9c
commit
404e466fc2
19 files changed
+414
-50
No files matched your search
@@ -0,0 +1,35 @@
|
||||
# Architecture
|
||||
|
||||
Kaptan separates immutable board configuration from platform-owned runtime
|
||||
resources and portable flight logic.
|
||||
|
||||
```text
|
||||
board declaration
|
||||
│
|
||||
▼
|
||||
F722 platform / RTIC application ──► data channel ──► MAVLink telemetry
|
||||
│
|
||||
├── physical sensor drivers
|
||||
└── motor-pin inhibit interlock
|
||||
|
||||
portable libraries
|
||||
math ─► navigation ─► control ─► safety
|
||||
```
|
||||
|
||||
The board contract selects one immutable `BoardProfile`. The checked-in
|
||||
profile is `TelemetryOnly`; `ExternalControlOnly` is represented explicitly
|
||||
but rejected at validation time because it has no reviewed runtime.
|
||||
|
||||
The data channel owns rate selection, mailbox consumption, message encoding,
|
||||
and bounded TX classification. Board code supplies physical routes and
|
||||
telemetry configuration; it does not receive generic output authority.
|
||||
|
||||
## Ownership rules
|
||||
|
||||
- A peripheral owner is local to the platform runtime.
|
||||
- Portable crates use typed units and validated values rather than raw wire or
|
||||
timer representations.
|
||||
- A safety permit is epoch-bound and must be revalidated at the only nonzero
|
||||
output boundary.
|
||||
- A failed observation or numerical check does not partially commit estimator,
|
||||
controller, allocator, or safety state.
|
||||
Reference in new issue
Block a user