> For the complete documentation index, see [llms.txt](https://docs.interlynk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.interlynk.io/lynkctl/how-to-guides/iar.md).

# IAR Embedded Workbench Firmware

This guide covers generating an SBOM for embedded firmware built with IAR Embedded Workbench for Arm.

## Prerequisites

* lynkctl installed — see [Installation](/lynkctl/installation.md)
* An IAR project (`.ewp`) or workspace (`.eww`)

No IAR toolchain is required. lynkctl reads the project files directly.

***

## Generate an SBOM

Point `generate` at the `.ewp` or `.eww` file. lynkctl selects the IAR provider automatically when `DIR` is one of those files:

```bash
lynkctl generate ./fw/project.ewp -o fw.cdx.json
```

You can also pass the project directory with an explicit `--provider iar`.

## Select a Configuration

IAR projects usually declare more than one configuration, such as `Debug` and `Release`. Choose one with `--iar-config`:

```bash
lynkctl generate ./fw --provider iar --iar-config Release -o fw.cdx.json
```

When `--iar-config` is omitted, lynkctl processes the first declared configuration and reports `IAR_MULTIPLE_CONFIGURATIONS` if others exist.

## Emit Every Configuration

To produce one SBOM per configuration in a single run, use `--iar-all-configs`. This requires `--output` to be a **directory**, and it cannot be combined with `--iar-config`:

```bash
lynkctl generate ./fw --provider iar --iar-all-configs --output ./sboms/
```

## Troubleshooting

If a run reports warnings or errors, rerun with `-v` to see the individual diagnostics and their suggested actions. See [Diagnostics & Exit Codes](/lynkctl/diagnostics.md) for severity levels, exit codes, and strict mode. For help interpreting a specific diagnostic, contact Interlynk.
