60 #ifndef SEGGER_RTT_PRINTF_BUFFER_SIZE
61 #define SEGGER_RTT_PRINTF_BUFFER_SIZE (64)
68 #define FORMAT_FLAG_LEFT_JUSTIFY (1u << 0)
69 #define FORMAT_FLAG_PAD_ZERO (1u << 1)
70 #define FORMAT_FLAG_PRINT_SIGN (1u << 2)
71 #define FORMAT_FLAG_ALTERNATE (1u << 3)
87 unsigned RTTBufferIndex;
133 static const char _aV2C[16] = {
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F' };
146 while (Number >= Base) {
147 Number = (Number / Base);
150 if (NumDigits > Width) {
157 if (FieldWidth != 0u) {
163 while ((FieldWidth != 0u) && (Width < FieldWidth)) {
179 if (NumDigits > 1u) {
205 if (FieldWidth != 0u) {
206 while ((FieldWidth != 0u) && (Width < FieldWidth)) {
226 Number = (v < 0) ? -v : v;
232 while (Number >= (
int)Base) {
233 Number = (Number / (int)Base);
236 if (NumDigits > Width) {
247 if (FieldWidth != 0u) {
248 while ((FieldWidth != 0u) && (Width < FieldWidth)) {
274 if (FieldWidth != 0u) {
275 while ((FieldWidth != 0u) && (Width < FieldWidth)) {
288 _PrintUnsigned(pBufferDesc, (
unsigned)v, Base, NumDigits, FieldWidth, FormatFlags);
322 unsigned FormatFlags;
351 default: v = 0;
break;
360 if ((c <
'0') || (c >
'9')) {
364 FieldWidth = (FieldWidth * 10u) + ((
unsigned)c -
'0');
376 if ((c <
'0') || (c >
'9')) {
380 NumDigits = NumDigits * 10u + ((unsigned)c -
'0');
388 if ((c ==
'l') || (c ==
'h')) {
401 v = va_arg(*pParamList,
int);
407 v = va_arg(*pParamList,
int);
408 _PrintInt(&BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags);
411 v = va_arg(*pParamList,
int);
412 _PrintUnsigned(&BufferDesc, (
unsigned)v, 10u, NumDigits, FieldWidth, FormatFlags);
416 v = va_arg(*pParamList,
int);
417 _PrintUnsigned(&BufferDesc, (
unsigned)v, 16u, NumDigits, FieldWidth, FormatFlags);
421 const char * s = va_arg(*pParamList,
const char *);
433 v = va_arg(*pParamList,
int);
452 if (BufferDesc.
Cnt != 0u) {
495 va_start(ParamList, sFormat);