Debug (printf) Viewer

http://www.keil.com/support/man/docs/uv4/uv4_db_dbg_serialwin.htm

ST Debug (printf) Viewer for Jlink 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

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.

ST Debug (printf) Viewer for Jlink 随笔 第2张Open these windows using the toolbar button or the menu View - Serial Windows.

ST Debug (printf) Viewer for Jlink 随笔 第3张

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 ('\r') Carriage Return
LF ('\n') Line Feed
TAB ('\t') 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

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄