# cargo-embed
[](https://crates.io/crates/cargo-embed) [](https://docs.rs/cargo-embed) [](https://github.com/probe-rs/cargo-embed/actions) [](https://matrix.to/#/!vhKMWjizPZBgKeknOo:matrix.org)
This crate provides a cargo subcommand to work with embedded targets.
It can flash targets, just like cargo-flash but can do much more, such as logging RTT output from the target, opening a GDB server connected to the target, and much more functionality such as ITM to come!
Various chip families including but not limited to nRF5x, STM32 and LPC800 can be worked with using DAPLink, ST-Link or J-Link.
It supports all the targets & probes [probe-rs](https://github.com/probe-rs/probe-rs) supports.
## Installation
You can install this utility with cargo:
```bash
cargo install cargo-embed
```
## Usage
You can use it like any cargo command would be used
```bash
cargo embed <args>
```
which will then build your binary and download the contents onto the connected target.
## Configuration
You can configure `cargo-embed` with a file called `Embed.toml` (or `.embed.toml`) in your project directory. That file should be added to your git history.
For local-only configuration overrides, you can create an `Embed.local.toml` (or `.embed.local.toml`) file and add that to your `.gitignore`.
Config file precedence:
1. `Embed.local.*`
2. `.embed.local.*`
3. `Embed.*`
4. `.embed.*`
5. Default configuration
Instead of a TOML file, you can also use a JSON or YAML file. Choose what suits you best!
You can find all available options in the [default.toml](src/config/default.toml). Commented out options are the ones that are `None` by default.