50 #include "segger-rtt-conf.h"
73 unsigned SizeOfBuffer;
74 volatile unsigned WrOff;
75 volatile unsigned RdOff;
77 } SEGGER_RTT_RING_BUFFER;
87 int MaxNumDownBuffers;
88 SEGGER_RTT_RING_BUFFER aUp[SEGGER_RTT_MAX_NUM_UP_BUFFERS];
89 SEGGER_RTT_RING_BUFFER aDown[SEGGER_RTT_MAX_NUM_DOWN_BUFFERS];
98 extern SEGGER_RTT_CB _SEGGER_RTT;
106 int SEGGER_RTT_ConfigUpBuffer (
unsigned BufferIndex,
const char* sName,
void* pBuffer,
unsigned BufferSize,
unsigned Flags);
107 int SEGGER_RTT_ConfigDownBuffer (
unsigned BufferIndex,
const char* sName,
void* pBuffer,
unsigned BufferSize,
unsigned Flags);
108 int SEGGER_RTT_GetKey (
void);
109 unsigned SEGGER_RTT_HasData (
unsigned BufferIndex);
110 int SEGGER_RTT_HasKey (
void);
111 void SEGGER_RTT_Init (
void);
112 unsigned SEGGER_RTT_Read (
unsigned BufferIndex,
void* pBuffer,
unsigned BufferSize);
113 unsigned SEGGER_RTT_ReadNoLock (
unsigned BufferIndex,
void* pData,
unsigned BufferSize);
114 int SEGGER_RTT_SetNameDownBuffer(
unsigned BufferIndex,
const char* sName);
115 int SEGGER_RTT_SetNameUpBuffer (
unsigned BufferIndex,
const char* sName);
116 int SEGGER_RTT_WaitKey (
void);
117 unsigned SEGGER_RTT_Write (
unsigned BufferIndex,
const void* pBuffer,
unsigned NumBytes);
118 unsigned SEGGER_RTT_WriteNoLock (
unsigned BufferIndex,
const void* pBuffer,
unsigned NumBytes);
119 unsigned SEGGER_RTT_WriteSkipNoLock (
unsigned BufferIndex,
const void* pBuffer,
unsigned NumBytes);
120 unsigned SEGGER_RTT_WriteString (
unsigned BufferIndex,
const char* s);
124 #define SEGGER_RTT_HASDATA(n) (_SEGGER_RTT.aDown[n].WrOff - _SEGGER_RTT.aDown[n].RdOff)
132 int SEGGER_RTT_SetTerminal (
char TerminalId);
133 int SEGGER_RTT_TerminalOut (
char TerminalId,
const char* s);
141 int SEGGER_RTT_printf(
unsigned BufferIndex,
const char * sFormat, ...);
153 #define SEGGER_RTT_MODE_NO_BLOCK_SKIP (0U) // Skip. Do not block, output nothing. (Default)
154 #define SEGGER_RTT_MODE_NO_BLOCK_TRIM (1U) // Trim: Do not block, output as much as fits.
155 #define SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL (2U) // Block: Wait until there is space in the buffer.
156 #define SEGGER_RTT_MODE_MASK (3U)
162 #define RTT_CTRL_RESET "\e[0m" // Reset to default colors
163 #define RTT_CTRL_CLEAR "\e[2J" // Clear screen, reposition cursor to top left
165 #define RTT_CTRL_TEXT_BLACK "\e[2;30m"
166 #define RTT_CTRL_TEXT_RED "\e[2;31m"
167 #define RTT_CTRL_TEXT_GREEN "\e[2;32m"
168 #define RTT_CTRL_TEXT_YELLOW "\e[2;33m"
169 #define RTT_CTRL_TEXT_BLUE "\e[2;34m"
170 #define RTT_CTRL_TEXT_MAGENTA "\e[2;35m"
171 #define RTT_CTRL_TEXT_CYAN "\e[2;36m"
172 #define RTT_CTRL_TEXT_WHITE "\e[2;37m"
174 #define RTT_CTRL_TEXT_BRIGHT_BLACK "\e[1;30m"
175 #define RTT_CTRL_TEXT_BRIGHT_RED "\e[1;31m"
176 #define RTT_CTRL_TEXT_BRIGHT_GREEN "\e[1;32m"
177 #define RTT_CTRL_TEXT_BRIGHT_YELLOW "\e[1;33m"
178 #define RTT_CTRL_TEXT_BRIGHT_BLUE "\e[1;34m"
179 #define RTT_CTRL_TEXT_BRIGHT_MAGENTA "\e[1;35m"
180 #define RTT_CTRL_TEXT_BRIGHT_CYAN "\e[1;36m"
181 #define RTT_CTRL_TEXT_BRIGHT_WHITE "\e[1;37m"
183 #define RTT_CTRL_BG_BLACK "\e[24;40m"
184 #define RTT_CTRL_BG_RED "\e[24;41m"
185 #define RTT_CTRL_BG_GREEN "\e[24;42m"
186 #define RTT_CTRL_BG_YELLOW "\e[24;43m"
187 #define RTT_CTRL_BG_BLUE "\e[24;44m"
188 #define RTT_CTRL_BG_MAGENTA "\e[24;45m"
189 #define RTT_CTRL_BG_CYAN "\e[24;46m"
190 #define RTT_CTRL_BG_WHITE "\e[24;47m"
192 #define RTT_CTRL_BG_BRIGHT_BLACK "\e[4;40m"
193 #define RTT_CTRL_BG_BRIGHT_RED "\e[4;41m"
194 #define RTT_CTRL_BG_BRIGHT_GREEN "\e[4;42m"
195 #define RTT_CTRL_BG_BRIGHT_YELLOW "\e[4;43m"
196 #define RTT_CTRL_BG_BRIGHT_BLUE "\e[4;44m"
197 #define RTT_CTRL_BG_BRIGHT_MAGENTA "\e[4;45m"
198 #define RTT_CTRL_BG_BRIGHT_CYAN "\e[4;46m"
199 #define RTT_CTRL_BG_BRIGHT_WHITE "\e[4;47m"