15#ifndef TRC_INTERNAL_BUFFER_H
16#define TRC_INTERNAL_BUFFER_H
18#if (TRC_USE_TRACEALYZER_RECORDER == 1)
20#include <trcDefines.h>
22#ifdef TRC_CFG_STREAM_PORT_USE_INTERNAL_BUFFER
23#define TRC_USE_INTERNAL_BUFFER TRC_CFG_STREAM_PORT_USE_INTERNAL_BUFFER
25#define TRC_USE_INTERNAL_BUFFER 1
28#if (TRC_USE_INTERNAL_BUFFER == 1)
31#define TRC_INTERNAL_BUFFER_SIZE ((((TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_SIZE) + sizeof(TraceUnsignedBaseType_t) - 1) / sizeof(TraceUnsignedBaseType_t)) * sizeof(TraceUnsignedBaseType_t))
38 uint8_t aubBuffer[TRC_INTERNAL_BUFFER_SIZE];
47#ifdef TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_TRANSFER_MODE
48#define TRC_INTERNAL_EVENT_BUFFER_TRANSFER_MODE TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_TRANSFER_MODE
50#define TRC_INTERNAL_EVENT_BUFFER_TRANSFER_MODE TRC_INTERNAL_EVENT_BUFFER_OPTION_TRANSFER_MODE_ALL
53#ifdef TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_SIZE
54#define TRC_INTERNAL_BUFFER_CHUNK_SIZE TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_SIZE
56#define TRC_INTERNAL_BUFFER_CHUNK_SIZE (1024UL)
59#ifdef TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT
60#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT
62#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_SIZE_LIMIT (512UL)
65#ifdef TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT
66#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT TRC_CFG_STREAM_PORT_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT
68#define TRC_INTERNAL_BUFFER_CHUNK_TRANSFER_AGAIN_COUNT_LIMIT (5UL)
128#if (TRC_INTERNAL_EVENT_BUFFER_TRANSFER_MODE == TRC_INTERNAL_EVENT_BUFFER_OPTION_TRANSFER_MODE_ALL)
129#define xTraceInternalEventBufferTransfer xTraceInternalEventBufferTransferAll
131#define xTraceInternalEventBufferTransfer xTraceInternalEventBufferTransferChunk
183#define xTraceInternalEventBufferInitialize(pxBuffer) ((pxBuffer) != 0 ? TRC_SUCCESS : TRC_FAIL)
184#define xTraceInternalEventBufferAlloc(ppvData, uiSize) ((void)(uiSize), (ppvData) != 0 ? TRC_SUCCESS : TRC_FAIL)
185#define xTraceInternalEventBufferAllocCommit(pvData, uiSize, piBytesWritten) ((void)(pvData), (void)(uiSize), (void)(piBytesWritten), TRC_SUCCESS)
186#define xTraceInternalEventBufferPush(pvData, uiSize, piBytesWritten) ((void)(uiSize), (void)(piBytesWritten), (pvData) != 0 ? TRC_SUCCESS : TRC_FAIL)
187#define xTraceInternalEventBufferTransfer() (void)(TRC_SUCCESS)
188#define xTraceInternalEventBufferTransferChunk(piBytesWritten, uiChunkSize) ((void)(piBytesWritten), (void)(uiChunkSize), TRC_SUCCESS)
189#define xTraceInternalEventBufferClear() (void)(TRC_SUCCESS)
traceResult xTraceInternalEventBufferAlloc(uint32_t uiSize, void **ppvData)
Allocates a data slot directly from the internal event buffer.
traceResult xTraceInternalEventBufferTransferChunk(void)
Transfer internal trace event buffer data through streamport.
traceResult xTraceInternalEventBufferPush(void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
Pushes data to the internal trace event buffer.
traceResult xTraceInternalEventBufferAllocCommit(void *pvData, uint32_t uiSize, int32_t *piBytesWritten)
Commits the last allocated block to the internal event buffer.
traceResult xTraceInternalEventBufferClear(void)
Clears all trace events in the internal trace event buffer.
traceResult xTraceInternalEventBufferTransferAll(void)
Transfers all internal trace event buffer data using the function xTraceStreamPortWriteData(....
A structure representing the trace stream port buffer.
Definition trcInternalEventBuffer.h:37
struct TraceInternalEventBufferData TraceInternalEventBufferData_t
A structure representing the trace stream port buffer.