FerroForge
Reusable RTIC tasks, selected into firmware. This crate
provides the two macros: #[ferroforge::task] marks a definition, and
ferroforge::app! declares the application that selects it.
A task is an ordinary function in its own crate. It names what it needs, and compiles on its own without any firmware:
pub async !
A firmware writes an ordinary RTIC application - resources, init, native HAL
calls - and declares each task instance by naming its definition and binding
its needs to the firmware's own resources and values:
app!
app! expands in place into #[rtic::app], and each declaration becomes a
handler that calls the definition. Nothing is copied or generated into another
project, so every mistake is an ordinary compile error at the line that made it,
and checking is RTIC's and Rust's - FerroForge adds none of its own.
The quickest start is the ferroforge command, which writes a working project:
see ferroforge-cli. The authoring
model in full is in the
architecture chapter.
Licensed under either of MIT or Apache-2.0, at your option.