12#ifndef TRC_STREAM_PORT_H
13#define TRC_STREAM_PORT_H
15#if (TRC_USE_TRACEALYZER_RECORDER == 1)
17#if (TRC_CFG_RECORDER_MODE == TRC_RECORDER_MODE_STREAMING)
21#include <trcStreamPortConfig.h>
23#include <zephyr/arch/common/semihost.h>
29#define TRC_USE_INTERNAL_BUFFER (TRC_CFG_STREAM_PORT_USE_INTERNAL_BUFFER)
31#define TRC_INTERNAL_EVENT_BUFFER_WRITE_MODE (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_WRITE_MODE)
33#define TRC_INTERNAL_EVENT_BUFFER_TRANSFER_MODE (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_TRANSFER_MODE)
35#define TRC_INTERNAL_BUFFER_CHUNK_SIZE (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_SIZE)
37#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT)
39#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT (TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT)
42#define TRC_STREAM_PORT_INTERNAL_BUFFER_SIZE ((((TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_SIZE) + sizeof(TraceUnsignedBaseType_t) - 1) / sizeof(TraceUnsignedBaseType_t)) * sizeof(TraceUnsignedBaseType_t))
44typedef struct TraceStreamPortFile
46 long pxFileDescriptor;
47#if (TRC_USE_INTERNAL_BUFFER)
48 uint8_t buffer[TRC_STREAM_PORT_INTERNAL_BUFFER_SIZE];
50} TraceStreamPortFile_t;
52extern TraceStreamPortFile_t* pxStreamPortFile;
54#define TRC_STREAM_PORT_BUFFER_SIZE (sizeof(TraceStreamPortFile_t))
58 uint8_t buffer[TRC_STREAM_PORT_BUFFER_SIZE];
82#if (TRC_USE_INTERNAL_BUFFER == 1)
83#if (TRC_INTERNAL_EVENT_BUFFER_WRITE_MODE == TRC_INTERNAL_EVENT_BUFFER_OPTION_WRITE_MODE_COPY)
84#define xTraceStreamPortAllocate(uiSize, ppvData) ((void)(uiSize), xTraceStaticBufferGet(ppvData))
86#define xTraceStreamPortAllocate(uiSize, ppvData) ((void)(uiSize), xTraceInternalEventBufferAlloc(uiSize, ppvData))
89#define xTraceStreamPortAllocate(uiSize, ppvData) ((void)(uiSize), xTraceStaticBufferGet(ppvData))
104#if (TRC_USE_INTERNAL_BUFFER == 1)
105#if (TRC_INTERNAL_EVENT_BUFFER_WRITE_MODE == TRC_INTERNAL_EVENT_BUFFER_OPTION_WRITE_MODE_COPY)
106#define xTraceStreamPortCommit xTraceInternalEventBufferPush
108#define xTraceStreamPortCommit xTraceInternalEventBufferAllocCommit
111#define xTraceStreamPortCommit xTraceStreamPortWriteData
124#define xTraceStreamPortReadData(pvData, uiSize, piBytesRead) ((void)(pvData), (void)(uiSize), (void)(piBytesRead), TRC_SUCCESS)
126#define xTraceStreamPortOnEnable(uiStartOption) ((void)(uiStartOption), TRC_SUCCESS)
128#define xTraceStreamPortOnDisable() (TRC_SUCCESS)
130traceResult xTraceStreamPortOnTraceBegin(
void);
132traceResult xTraceStreamPortOnTraceEnd(
void);
135traceResult xTraceStreamPortWriteData(
void* pvData, uint32_t uiSize, int32_t* piBytesWritten);
A structure representing the trace stream port buffer.
Definition: trcStreamPort.h:93