Files
NeoECU-Tooling/README.md
2026-05-03 18:31:08 +02:00

2.4 KiB

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 the Debug CMake preset. If omitted, CM7 uses Release.
  • --release: build CM7 with the Release CMake 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