embedded-runner
Cargo runner for embedded projects using GDB and OpenOCD.
Ensure the GDB executable is either arm-none-eabi-gdb or set per environmental variable GDB.
The OpenOCD executable openocd must be available on path.
Usage
-
Install the crate using
cargo install embedded-runner. -
Set
embedded-runner runas cargo runner at.cargo/config.toml[target(<your target configuration>)] runner = "embedded-runner run" -
Create a runner configuration
By default,
embedded-runnerwill look for a runner configuration at.embedded/runner.toml. A custom path may be set by the--runner-cfgargument after theruncommand.Be sure to enable the
defmtfeature formantra-rust-macrosto get the requirement coverage logs when using mantra.The configuration allows the following settings:
# Optional: Load section in the gdb script. # # The load section gets resolved using the Tera templating language. # Variables `binary_path`, `binary_filepath`, and `binary_filepath_noextension` are passed as context. # # e.g. "load {{ binary_filepath }}" = "load" # Optional: Path to a custom OpenOCD configuration = ".embedded/openocd.cfg" # Optional: Connection to a GDB server to use instead of OpenOCD = "" # Optional: Path to write GDB logs to = "<output directory>/gdb.log" # Optional: RTT port to use on the host = 19021 # Optional: Define a command to run before the runner executes the binary. # A 'post-runner' may also be set that is run after executing the binary. # # On windows, `pre-runner-windows` is available that takes precedence over `pre-runner`. # Same with `post-runner-windows`. [] # Name of the command = "powershell" # Arguments passed to the command. # The binary path is automatically added as last argument = ["echo"] -
Optional: Add your OpenOCD configuration
This configuration file is needed if no GDB connection is set in the
runner.tomlfile.By default,
embedded-runnerwill look for.embedded/openocd.cfg, but you may change this in the runner configuration. -
Create and run your
defmt-testtestsConsult the
defmt-testdocumentation on how to create and manage tests using thedefmtframework. -
Optional: Collect test results from multiple test runs
Run
embedded-runner collect <output filepath>to combine all test run results into one file. The content will be JSON adhering to the mantraCoverageSchema.
License
MIT Licensed