105 lines
2.4 KiB
Markdown
105 lines
2.4 KiB
Markdown
# 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:
|
|
|
|
```toml
|
|
[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:
|
|
|
|
```toml
|
|
[build]
|
|
m7_dir = "STM32"
|
|
m7_type = "ST"
|
|
```
|
|
|
|
```toml
|
|
[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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
neoecu init
|
|
```
|
|
|
|
### `neoecu clean`
|
|
|
|
Removes generated build directories for the configured cores while protecting the project root and configured source directories.
|
|
|
|
Example:
|
|
|
|
```sh
|
|
neoecu clean
|
|
```
|
|
|
|
### `neoecu envcheck`
|
|
|
|
Checks whether expected build tools, Zephyr environment variables, and Arm toolchain dependencies are available.
|
|
|
|
Example:
|
|
|
|
```sh
|
|
neoecu envcheck
|
|
```
|