Debug (printf) Viewer
http://www.keil.com/support/man/docs/uv4/uv4_db_dbg_serialwin.htm
Serial Window
The Serial window accepts serial input and output data streams. The window displays serial output data received from a simulated CPU, while characters typed into a serial window are input to the simulated CPU. This allows testing a UART interface prior to having the target hardware.
The Debug (printf) Viewer is a special serial window that can exchange data with the microcontoller. For Cortex-M microcontrollers, the window displays printf-data received from the Instrumentation Trace Macrocell (ITM). To redirect output, refer also to Retarget Output via ITM, and Debug Access in the CMSIS documentation.
Open these windows using the toolbar button or the menu View - Serial Windows.
The Context Menu allows:
- Clearing the window.
- Copying and saving the content to the clipboard or a file.
- Setting a Carriage Return to every Line Feed that is received (enabled by default).
- Switching to various representation modes.
Terminal Mode Text formatting and cursor control sequences are supported (see table below). ASCII Mode Every printable character is displayed. An unprintable character is displayed as white-space (' '). HEX Mode Every character is displayed as a HEX-number. Mixed Mode Every character is displayed as a HEX-number and ASCII character. An unprintable character is displayed as dot ('.').
ANSI VT100 Terminal Sequences
Sequence | Description |
---|---|
From Target −→ µVision | |
CR (' ') | Carriage Return |
LF (' ') | Line Feed |
TAB (' ') | Tabulator |
BS (0x08) | Back Space |
BEL (0x07) | Bell |
<ESC>[C | Move cursor (position) 1 to the right |
<ESC>[D | Move cursor (position) 1 to the left |
<ESC>[K | Delete line right to cursor |
<ESC>[J | Clear screen |
<ESC>[y;xf | Set cursor to Row y, Column x; (x,y) are numeric ASCII values |
From µVision ⇒ Target | |
<ESC>[A | Cursor Key UP |
<ESC>[B | Cursor Key DOWN |
<ESC>[C | Cursor Key RIGHT |
<ESC>[D | Cursor Key LEFT |
Examples
// Clear screen and set cursor home void ClearScreen(void) { printf("%c[1;1f%c[J", 27, 27); } // set cursor to position (x, y) void SetCursorPosition(int x, int y) { printf("%c[%i;%if", 27, (signed int)y, (signed int)x); }
See also
- Assign Serial I/O to a PC COM Port using the debug command ASSIGN.
- SLOG the debug command to redirect serial output to a file.
- Low Level I/O Routines redirect serial communication to a different UART or peripheral.
- UART Communication provides examples of UART simulation, peripheral dialogs, VTREG's, or controlling UART communication timing.
- Debug (printf) Viewer usage when debugging hardware with ULINKpro.