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
| Output | Setting | Notes |
|---|---|---|
| Semihosting | neuralInverse.embedded.debug.semihosting | Firmware built for semihosting stops at a breakpoint instruction when no debugger is attached |
| SEGGER RTT | neuralInverse.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 SWO | neuralInverse.embedded.debug.swo, debug.swoCpuClock, debug.swoFrequency (default 2 MHz), debug.swoPort | swoCpuClock 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 server | Semihosting | RTT | SWO |
|---|---|---|---|
| J-Link GDB Server | Yes | Yes, through its RTT port | Yes |
| ST-LINK GDB server | No | No | Yes |
| OpenOCD | Yes | Yes | Yes |
| TRACE32 (GDB back end) | No | No | No |
| QEMU | Yes | No | No |
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.
- Pick the port; the last one used is marked. If none is listed, enter a port path, such as
/dev/ttyACM0orCOM5. - Pick the baud rate, or Other Baud Rate.... The last one used is remembered.
| Setting | Default |
|---|---|
neuralInverse.embedded.serial.baudRate | 115200 |
serial.dataBits | 8 |
serial.parity | none |
serial.stopBits | 1 |
serial.flowControl | none |
serial.lineEnding | crlf (also cr, lf) |
serial.localEcho | false |
serial.timestamps | true |
serial.logToFile | true: every session, with timestamps, to a log file |
serial.logDirectory | empty: 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.