> Complete documentation index: [llms.txt](/llms.txt). Markdown versions of all pages are available by appending `.md` to page URLs.

# MCU Debugger

> Halt, run and step a microcontroller with hardware breakpoints in the Mission Control 3 MCU Debugger, over SWD at 1 MHz through the Binho Atira.

The MCU Debugger halts, runs and steps the program on a microcontroller, line by line in its source, with hardware breakpoints. It works through the Binho Atira debug probe, over SWD at 1 MHz. It is in the desktop app only.

## Connect

Plug in the Atira, choose it in the bar at the top (**Binho Atira · S/N …**), then click **Connect**.

To power the target from the Atira, switch **Atira supply** from **0 V** to **3.3 V** and click **Supply 3.3 V**. The Atira then drives 3.3 V onto J4 pin 1: use it only for 3.3 V targets that are not powered through that pin.

Click **Attach…**, check the interface (**SWD**) and speed (**1 MHz**), and click **Attach**. Attaching does not halt or reset a running target. **Detach** leaves the target running. If a part is picked in the [MCU Programmer](/software/mission-control/tools/mcu-programmer/), the Debugger uses it.

## Load the Program

In **Program (ELF)**, enter the absolute path of the ELF built with debug information, or click **Choose ELF…**, then click **Load**. The ELF names the source files but does not contain them: if a file is marked **(not found)**, add its folder with **Add folder…** under **Source folders (optional)**. Paths are read on the computer the Atira is connected to.

Load the same build that is flashed on the target. If the ELF's entry point does not match the target's reset vector, the Debugger says so.

## Run Control

* **Halt** stops the core and shows the stop reason, the PC, and the file, line and function. The line is marked in the source view.
* **Run** resumes the core.
* **Step line** (F8) runs to the next line, or into a called function. **Step over** (F10) runs any call on the line and stops on the next line. **Step out** (Shift+F8) returns to the caller.
* F5 runs a halted core and halts a running one.
* **Reset** resets the target with the chosen **Reset kind** (**system**, **core** or **hardware**). It arms on the first click and runs on the second. Kinds the core does not have are disabled.

## Breakpoints

Click a line number in the source to set a hardware breakpoint, or type an address (`0x…`) or a function name in the **Hardware breakpoints** tab and click **Add**. Click the line number again, or remove it from the tab, to clear it. The number of breakpoints is the target's comparator count.

## Console

The **Console** tab opens the Atira's UART bridge at 115200 8N1 and shows what the target prints. Type in the box and press **Enter** or click **Send**; **Line ending** sets what is sent after each line (**None**, **CR**, **LF** or **CR LF**).