fupsrl

05 — xcpWorkflow API: XCP, Calibration, Flash, and Deployment

2 min read Updated 15 July 2026

This part of the API configures the XCPlite dependency, target scheduling, XCP endpoint, measurement/calibration capacity, virtual flash package, and optional SSH deployment.

XCPlite, scheduler, and XCP server

Input Default Use
XcpliteRepo Vector XCPlite repository Upstream source URL used only when an explicit update/checkout is requested.
XcpliteRef V2.1.5 Pinned XCPlite revision.
XcpliteDir <WorkDir>/external/XCPlite Local XCPlite source snapshot/check-out.
XcpliteUpdate false Explicitly fetch/check out the requested revision. Not allowed with Offline=true; a bundled snapshot is intentionally immutable.
XcpliteAllowDirty false Permit a modified Git checkout. This should remain false for reproducible builds.
ModelCores [2 3] Linux CPU cores for the model scheduler. They must not overlap XcpCores.
XcpCores 1 Core(s) inherited by XCPlite threads. Must not overlap model cores.
RtPriority 80 Model scheduler SCHED_FIFO priority, 1 through 99.
CpuCoreCount 4 Number of exported per-core CPU diagnostic channels.
Port 5555 XCP-on-TCP listening port.
BindAddr 0.0.0.0 Local address on which the target server listens.
XcpHost PiHost, otherwise 0.0.0.0 Endpoint written into the A2L. Set it before importing an offline-generated A2L.
LogLevel 3 XCPlite runtime diagnostic verbosity.
Persistence true Enable target-side calibration-page freeze/persistence.

DAQ and calibration capacity

Input Default Use
QueueSize 8 MiB Transmit queue byte capacity. Increase only after observing DAQ burst pressure.
DaqMemSize 512 KiB Dynamic DAQ allocation memory.
CalMemSize 4 MiB Calibration page-pool capacity.
CalSegCount 64 Maximum calibration segments, including EPK segment zero.
EventCount 64 Maximum generated measurement rasters/tasks.
MtuSize 8000 XCPlite TCP packet-batching size in bytes.
ParamChunk 32768 Bytes per model-parameter calibration segment. One parameter may not cross a chunk boundary.
CalibrationAllow {} Optional wildcard allow-list; empty permits every otherwise eligible parameter.
CalibrationDeny Generated index/dimension patterns Wildcard deny-list for bookkeeping parameters. Dependent lookup axes are retained automatically.

Identity, flash package, and optional deployment

Input Default Use
Epk Generated hash Software identity shared by application, A2L, and HEX.
FlashBase 0xC0000000 Virtual XCP programming-sector base address.
FlashSize 16 MiB Maximum virtual application image size.
ProFName <Model>_XCP_Flash_ProF Generated INCA ProF package folder name.
ProFTimeoutMs 30000 ProF command timeout in milliseconds.
PiHost Empty SSH deployment endpoint. The historical name works for any compatible Linux SBC.
PiUser Empty SSH user, required for deployment or legacy remote build.
PiPassword Empty SSH password, required for deployment/remote build. Pass it at runtime; do not store it in the project.
PiHostKey Empty Optional pinned SSH host-key fingerprint for PuTTY/plink.
PiAppDir /home/<PiUser>/xcp_app Application, persistence, and service directory. With no user it resolves internally to /opt/xcp_app.

Deployment example

cfg = xcpWorkflow("Model", "xcpMultiRateTest", ...
    "Offline", false, ...
    "Deploy", true, ...
    "PiHost", "192.168.1.50", ...
    "PiUser", "target-user", ...
    "PiPassword", "your-password", ...
    "PiAppDir", "/opt/xcp_app", ...
    "XcpHost", "192.168.1.50");

When Deploy=true or BuildMode="remote", host, user, and password must be supplied. Offline=true intentionally rejects those modes so an unattended local build never attempts a network connection.