
CM-STACK Simulink Compiler turns a Simulink model into a Linux XCP-on-TCP application and a matched calibration package: an A2L description, Intel HEX image, and INCA ProF flash package. The current workflow is designed around an offline, generic Linux cross-build, so a target board is not required to generate the artefacts.
Who this guide is for
This guide is for automotive hobbyists, calibration engineers, automotive technicians, and professional development teams who need a reproducible path from a Simulink model to measurement, calibration, and flash programming on a Linux single-board computer.
What is different in the current workflow
- Offline by default: MATLAB generates code, stages XCPlite, cross-compiles locally, and creates A2L/HEX/ProF without a connected board.
- Generic Linux SBCs: the default build uses generic ERT code generation rather than Raspberry Pi Support Package hooks. Raspberry Pi, Orange Pi, Radxa, and comparable Linux SBCs can use the same workflow when ABI and userspace compatibility are correct.
- One calibration package: the generated HEX contains the application image, EPK identity, and default calibration data. INCA/CANape use the A2L and this one HEX together.
- Lookup-aware calibration: explicit standard 1-D and 2-D lookup tables are exported as linked A2L CURVE/MAP instruments with their breakpoint axes.
- Optional deployment: SSH is needed only to deploy or run the generated runtime. No connection data is stored by the project.
Documentation map
The draft chapters below explain the workflow in a recommended order: prerequisites and first build; the generated artefacts; target portability; full API configuration; calibration and flash operation; deployment; performance; generic GPIO; and troubleshooting.
Baseline versions
- MATLAB/Simulink R2024b with Embedded Coder
- XCPlite V2.1.5, supplied as a pinned offline source snapshot
- Linux target profiles: aarch64, armv7, and x86_64