pub struct FirmwareConfiguration {
pub target: String,
pub path: PathBuf,
pub release: bool,
pub offline: bool,
pub remoteproc: Option<RemoteprocMemoryLayout>,
pub strict_remoteproc: bool,
pub workspace: Option<CstiWorkspace>,
}Expand description
Build parameters for bare-metal coprocessor firmware.
Fields§
§target: StringRust target triple to cross-compile for (e.g.
thumbv8m.main-none-eabihf). Resolved by the caller from the coprocessor’s
core name (McoreName/RcoreName/RvCoreName::as_rust_triple), the
single source of truth for triples.
path: PathBufPath to the firmware Cargo project root.
release: boolBuild in release mode.
offline: boolPass --offline to cargo: resolve and build from the local registry cache
only. Populate that cache first with csti fetch.
remoteproc: Option<RemoteprocMemoryLayout>Resolved remoteproc linker/ELF/DTS contract. The pipeline always sets
this; None retains the legacy .isr_vectors behavior for direct users.
strict_remoteproc: boolRequire the vector table to start at the remoteproc vector window’s
origin. csti build --skip-remoteproc-check clears it: with separate
vector placement cortex-m-rt links .vector_table at ORIGIN(FLASH),
so the check cannot pass there yet.
workspace: Option<CstiWorkspace>Build-host directories injected as CSTI_* env vars, and the workspace
layout locating target/. None injects nothing and uses the crate’s
own target/.