Embedded
Documentation

Version Latest

Target output and serial monitor

Semihosting, SEGGER RTT and ITM over SWO output in the Debug Console, sending input to the firmware over an RTT down channel, and the serial monitor for UARTs and probes' virtual COM ports.

Verification state: none of the outputs on this page has run on a board. ITM decoding, the RTT configuration strings and the serial formatting are unit-tested; the RTT path is kit shipped (jlink).

Output in the Debug Console

OutputSettingNotes
SemihostingneuralInverse.embedded.debug.semihostingFirmware built for semihosting stops at a breakpoint instruction when no debugger is attached
SEGGER RTTneuralInverse.embedded.debug.rtt, debug.rttChannel (default 0)The program must link SEGGER's RTT sources and initialise them; the session finds _SEGGER_RTT and starts streaming after that
ITM over SWOneuralInverse.embedded.debug.swo, debug.swoCpuClock, debug.swoFrequency (default 2 MHz), debug.swoPortswoCpuClock must be the real core clock and the SWO frequency must divide it exactly. One stimulus port at a time, as printf over ITM port 0 usually is

The launch configuration's semihosting, rtt, rttChannel, swo and swoCpuClock override the settings for one configuration.

Which probe path gives which:

GDB serverSemihostingRTTSWO
J-Link GDB ServerYesYes, through its RTT portYes
ST-LINK GDB serverNoNoYes
OpenOCDYesYesYes
TRACE32 (GDB back end)NoNoNo
QEMUYesNoNo

Send input over RTT

Type a setpoint into the firmware's RTT console: run Send to RTT Down Channel... and type a line, or type rtt and the text in the Debug Console. A newline is added. Only ASCII characters can be sent, and the length per send is limited.

State: unit-tested; through J-Link and OpenOCD, not yet run on a probe (kit jlink). Agents can send to the RTT down channel too.

Serial monitor

Open Serial Monitor opens a terminal on a serial port, including a probe's virtual COM port, to talk to the controller's command line.

  1. Pick the port; the last one used is marked. If none is listed, enter a port path, such as /dev/ttyACM0 or COM5.
  2. Pick the baud rate, or Other Baud Rate.... The last one used is remembered.
SettingDefault
neuralInverse.embedded.serial.baudRate115200
serial.dataBits8
serial.paritynone
serial.stopBits1
serial.flowControlnone
serial.lineEndingcrlf (also cr, lf)
serial.localEchofalse
serial.timestampstrue
serial.logToFiletrue: every session, with timestamps, to a log file
serial.logDirectoryempty: the window's logs folder

The serial port is opened in the Editor's shared process with @serialport/bindings-cpp (MIT); no other runtime is needed.

State: formatting unit-tested. Not run on a real serial port or USB virtual COM port on any operating system, including Windows COM ports.

Last reviewed 18 October 2026View as Markdown

Target output and serial monitor · Docs · Neural Inverse