NeoECU Tooling
Unified CLI tooling for building and flashing NeoECU firmware
Configuration
Run commands from anywhere inside a project that contains neoecu.toml. The tool walks up the directory tree until it finds that file.
neoecu.toml uses a [build] table. A core is considered configured only when both its directory and type are present:
[build]
m7_dir = "path/to/cm7/project"
m7_type = "ST"
m4_dir = "path/to/cm4/project"
m4_type = "Zephyr"
Supported core types are ST for CM7 and Zephyr for CM4. If either the CM7 or CM4 keys are missing or incomplete, that core is skipped and the tool runs as a single-core project for the core that is fully configured.
Examples:
[build]
m7_dir = "STM32"
m7_type = "ST"
[build]
m4_dir = "Zephyr"
m4_type = "Zephyr"
Commands
neoecu build
Builds the configured firmware cores. With both cores configured, this builds CM7 first with CMake and CM4 second with West/Zephyr. With only one fully configured core, only that core is built.
Options:
--debug: build CM7 with theDebugCMake preset. If omitted, CM7 usesRelease.--release: build CM7 with theReleaseCMake preset.--clean: clean before building. CM7 uses CMake--clean-first; CM4 uses West pristine rebuild.--CM7: build only the CM7 core.--CM4: build only the CM4 core.
Examples:
neoecu build
neoecu build --debug
neoecu build --release --clean
neoecu build --CM7
neoecu build --CM4 --clean
neoecu flash
Flashes the configured firmware cores with J-Link. With both cores configured, CM4 is flashed first and CM7 second. With only one fully configured core, only that core is flashed.
Options:
--CM7: flash only the CM7 core.--CM4: flash only the CM4 core.
Examples:
neoecu flash
neoecu flash --CM7
neoecu flash --CM4
neoecu init
Initializes the configured project cores. For CM7, it runs the CMake Debug and Release presets and performs an initial debug build. For CM4, it installs West and Zephyr Python requirements, then runs an initial West build.
Example:
neoecu init
neoecu clean
Removes generated build directories for the configured cores while protecting the project root and configured source directories.
Example:
neoecu clean
neoecu envcheck
Checks whether expected build tools, Zephyr environment variables, and Arm toolchain dependencies are available.
Example:
neoecu envcheck