pub struct FirmwareConfiguration {
pub target: String,
pub path: PathBuf,
pub release: bool,
pub offline: bool,
pub ipc: Option<SharedMemConfig>,
pub dbg: Option<DbgConfig>,
pub remoteproc: Option<RemoteprocMemoryLayout>,
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.
ipc: Option<SharedMemConfig>IPC shared-memory layout, injected as CONSORTIUM_IPC_* env vars.
dbg: Option<DbgConfig>Debug ring layout, injected as CONSORTIUM_DBG_* env vars.
remoteproc: Option<RemoteprocMemoryLayout>Resolved remoteproc linker/ELF/DTS contract. The pipeline always sets
this; None retains the legacy .isr_vectors behavior for direct users.
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/.