diff options
Diffstat (limited to 'FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/trcStreamingRecorder.c')
-rw-r--r-- | FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/trcStreamingRecorder.c | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/trcStreamingRecorder.c b/FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/trcStreamingRecorder.c index c86d688e6..dc1b87865 100644 --- a/FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/trcStreamingRecorder.c +++ b/FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/trcStreamingRecorder.c @@ -1,5 +1,5 @@ /*******************************************************************************
- * Trace Recorder Library for Tracealyzer v4.1.1
+ * Trace Recorder Library for Tracealyzer v4.1.5
* Percepio AB, www.percepio.com
*
* trcStreamingRecorder.c
@@ -48,6 +48,9 @@ #if (TRC_USE_TRACEALYZER_RECORDER == 1)
+#include <stdio.h>
+#include <stdarg.h>
+
typedef struct{
uint16_t EventID;
uint16_t EventCount;
@@ -174,9 +177,6 @@ static uint16_t FormatVersion = 0x0004; /* The number of events stored. Used as event sequence number. */
static uint32_t eventCounter = 0;
-/* The user event channel for recorder warnings, defined in trcKernelPort.c */
-extern char* trcWarningChannel;
-
/* Remembers if an earlier ISR in a sequence of adjacent ISRs has triggered a task switch.
In that case, vTraceStoreISREnd does not store a return to the previously executing task. */
int32_t isPendingContextSwitch = 0;
@@ -399,6 +399,37 @@ void vTracePrint(traceString chn, const char* str) prvTraceStoreSimpleStringEventHelper(chn, str);
}
+
+/*******************************************************************************
+* vTraceConsoleChannelPrintF
+*
+* Wrapper for vTracePrint, using the default channel. Can be used as a drop-in
+* replacement for printf and similar functions, e.g. in a debug logging macro.
+*
+* Example:
+*
+* // Old: #define LogString debug_console_printf
+*
+* // New, log to Tracealyzer instead:
+* #define LogString vTraceConsoleChannelPrintF
+* ...
+* LogString("My value is: %d", myValue);
+******************************************************************************/
+void vTraceConsoleChannelPrintF(const char* fmt, ...)
+{
+ va_list vl;
+ char tempBuf[60];
+ static traceString consoleChannel = NULL;
+
+ if (consoleChannel == NULL)
+ consoleChannel = xTraceRegisterString("Debug Console");
+
+ va_start(vl, fmt);
+ vsnprintf(tempBuf, 60, fmt, vl);
+ vTracePrint(consoleChannel, tempBuf);
+ va_end(vl);
+}
+
/******************************************************************************
* vTracePrintF
*
|